日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

利用MyEclipse進(jìn)行Struts的開發(fā) 開源技術(shù) 開源技術(shù) 【爪哇咖啡館】『原創(chuàng)博客...

 iversion 2007-07-25

Jakarta-StrutsApache軟件組織提供的一項(xiàng)開放源代碼項(xiàng)目,它為Java Web應(yīng)用提供了模型-視圖-控制器(MVC)框架,尤其適用于開發(fā)大型可擴(kuò)展的Web應(yīng)用. StrutsWeb應(yīng)用提供了一個通用的框架,使得開發(fā)人員可以把精力集中在如何解決實(shí)際業(yè)務(wù)問題上. 此外,Struts框架提供了許多可供擴(kuò)展和定制的地方使得應(yīng)用程序可以方便的擴(kuò)展框架,來更好的適應(yīng)用戶的實(shí)際需求.

本文是一篇介紹利用MyEclipse進(jìn)行Struts開發(fā)的基礎(chǔ)教程,通過詳細(xì)的描述和大量的圖片來展現(xiàn)Struts開發(fā)的具體過程. 這里所采用的是我們經(jīng)常會遇到的用戶登陸的實(shí)例,如果用戶登陸成功進(jìn)入程序的主界面(main.jsp),否則返回登陸頁面并提示錯誤信息.

n        創(chuàng)建Web項(xiàng)目

在菜單中依次點(diǎn)擊FileNewProject,然后在彈出的窗口中選擇J2EEWeb Project,啟動Web項(xiàng)目創(chuàng)建向?qū)А?/span>

點(diǎn)擊下一步,在項(xiàng)目名稱中,我們輸入StrutsDemo,然后修改Context root URL/hello,其他我們使用默認(rèn)的設(shè)置,最后點(diǎn)擊Finish按鈕完成創(chuàng)建工作.

在項(xiàng)目創(chuàng)建后,我們需要讓它支持Struts功能. 在菜單中選擇MyEclipseAdd Struts Capabilities. 在彈出的對話框中, Struts specification修改為1.2,Base package for new classes修改為我們喜歡的包名,com.study.struts,修改完成后點(diǎn)擊Finish按鈕.

Package Explore,我們可以看到增加了Struts能力后,MyEclipseWeb項(xiàng)目中增加了很多jar文件和tld文件,請參考下圖:

n        創(chuàng)建JSP文件

在我們的登陸程序中一共需要兩個JSP文件. 一個是index.jsp,作為用戶登陸的界面和登陸失敗后的返回界面. 一個是main.jsp,作為登陸成功后的主界面.

Package Explore中雙擊struts-config.xml將其打開,在源代碼窗口中點(diǎn)擊左側(cè)工具欄中的

,在彈出的JSP文件創(chuàng)建向?qū)е行薷奈募麨?/span>index.jsp,選擇5]Standard JSP using Struts 1.2 with a form模板,然后點(diǎn)擊Finish按鈕. MyEclipse會為我們創(chuàng)建一個名為index.jsp的帶一個FormJSP文件.

按照同樣的方法創(chuàng)建main.jsp. 由于我們只是簡單的在主界面中顯示成功登陸的信息,因此在創(chuàng)建的時候,我們選擇的是第一個缺省的模板.

JSP文件創(chuàng)建后,我們可以根據(jù)自己的需要來修改其中的內(nèi)容. 對于index.jsp,我們修改Formaction屬性和提交參數(shù)的名字, 并增加了<html:error>標(biāo)簽,可參考下面的代碼:

    <%@ page language="java"%>


<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html locale="true">
  <head>
    <html:base />
   
    <title>index.jsp</title>
   
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">   
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
  </head>
 
  <body>
  <center><html:errors/></center>
    <html:form action="/login.do" method="post" focus="login">
     
     
      <table border="0">
        <tr>
          <td>Login:</td>
          <td><html:text property="name" /></td>
        </tr>
        <tr>
          <td>Password:</td>
          <td><html:password property="password" /></td>
        </tr>
        <tr>
          <td colspan="2" align="center"><html:submit /></td>
        </tr>
      </table>
    </html:form>
  </body>
</html:html>

       對于main.jsp,我們修改<body>中的輸出信息,提示用戶登陸成功,代碼如下:

    <body>

         You have logged in!<br>

    </body>

       保存兩個JSP文件和struts-config.xml文件.

n        創(chuàng)建ActionForm

在我們的登陸程序中需要用戶提交用戶名和密碼,因此我們需要創(chuàng)建一個ActionForm Bean來保存提交的HTML表單數(shù)據(jù).

將源代碼窗口中的標(biāo)簽切換到struts-config.xml,右上角的Outline窗口內(nèi)容如下:

選中其中的form-beans,右鍵單擊,在彈出的菜單中選擇New Form. Form Bean創(chuàng)建向?qū)υ捒蛑?/span>,輸入Use case的名字login,然后在下方的Form Properties中增加namepassword兩個屬性.(注意本例子暫時不設(shè)置validate方法和reset方法)

 

n        創(chuàng)建Action

       在完成上面的創(chuàng)建后,我們接下來創(chuàng)建Action. 在源代碼窗口中切換到struts-config.xml文件,點(diǎn)擊左側(cè)工具欄中的. 在彈出的創(chuàng)建向?qū)е休斎?/span>Use case名字為Login.

       在對話框的下部Optional Details,點(diǎn)擊Name行末的Browse按鈕,選中我們剛才創(chuàng)建的loginForm.

點(diǎn)擊Input Source行末的Browse按鈕,在彈出的對話框中選中index.jsp.

Optional Details標(biāo)簽切換到Forwards,點(diǎn)擊Add按鈕增加一個局部的Forward.

這里的success是我們給Forward的名字,你也可以使用其它你喜歡的名字. 增加后如下:

完成新建Action的設(shè)置后如下圖:

點(diǎn)擊Finish按鈕后,MyEclipse會為我們創(chuàng)建一個名叫LoginAction.java的文件,我們可以根據(jù)自己的需要來實(shí)現(xiàn)具體的驗(yàn)證邏輯. 這里,我們僅僅通過登陸的名字是否為hello來判斷. 如果不是提示登陸失敗. 修改LoginAction的excute方法如下:  

     public ActionForward execute(
  ActionMapping mapping,
  ActionForm form,
  HttpServletRequest request,
  HttpServletResponse response) {
  ActionErrors errors=new ActionErrors();

       

        LoginForm loginForm = (LoginForm) form;       

        String username=loginForm.getName();

       

        if(username.equals("hello")) {

               return mapping.findForward("success");

        } else {

               errors.add(ActionErrors.GLOBAL_ERROR,new ActionError("error.msg"));

               saveErrors(request,errors);

               return (new ActionForward(mapping.getInput()));

        }


 }

從上面的代碼中我們可以看到,當(dāng)用戶登陸失敗后會使用一個鍵值為error.msgActionError. 因此,我們在Package Explore中找到ApplicationResources.properties文件并雙擊打開,輸入以下內(nèi)容并保存.

error.msg=Login Failed

在完成了上述所有的工作后,我們可以看到圖示化的struts-config.xml如下:

n        部署和測試應(yīng)用程序

這里StrutsDemo的部署同其他的Web應(yīng)用程序一樣,我們就不在贅述了,具體的方法可以參閱我的上一篇文章“利用MyEclipse進(jìn)行Web開發(fā)

部署成功后,IE的地址欄中輸入http://localhost:8080/hello/index.jsp并回車.

我們首先驗(yàn)證登陸失敗的場景. 當(dāng)我們輸入的用戶名不是hello,應(yīng)返回到登陸頁面并提示登陸失敗. Name中輸入abcd,點(diǎn)擊Submit按鈕.

我們可以看到又回到了登陸頁面,并且出現(xiàn)了Login Failed的提示信息. 修改用戶名為hello,然后點(diǎn)擊Submit按鈕.

.

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多