国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
一個struts工程的創(chuàng)建過程及運行原理 - yan - JavaEye技術(shù)網(wǎng)站
一個struts工程的創(chuàng)建過程及運行原理
文章分類:Java編程1 在Myeclipse 中新建一個Web project,如圖,點擊Finish。
2 右擊項目名z-myfirstproject,選擇Myeclipse---Add Struts Capabilities
3 在出現(xiàn)的如下界面中,將包名稱改為自己的包名稱:yan.struts,其他的默認即可,點擊確定。
4 完成以上步驟后,會在項目目錄中自動添加一些jar包和文件等,如圖。
5 點擊打開 strust-config.xml,如下,右擊空白處,選擇 New ---Form Action and JSP,
6 在出現(xiàn)的Add Struts Capabilities界面中,輸入user case為login,因為要做一個登錄的用例。同時可以在下面的optional Details中的form Properties中點擊Add按鈕添加屬性。
7 這里添加兩個Form表單屬性,一個是username ,一個password,如下圖。
8 如下圖,選中Create JSP form選項,Superclass選擇 ActionForm。點擊Next
9 在出現(xiàn)的界面中的Optional Details中,選擇Forwards,點擊Add添加一個Forward。
10 點擊Add ,在出現(xiàn)的界面中填寫Forward,點擊Add按鈕。然后在Add Struts Capabilities界面中點擊finish 按鈕。
11 以上操作完成后,會在項目中添加幾個文件,如下圖。
12 打開WebRoot目錄下的form下的login.jsp頁面,可以看到系統(tǒng)自動生成了登錄頁面,代碼如下:
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html>
<head>
<title><bean:message key="login.hello"/></title>
</head>
<body>
<html:form action="/login.do">
username : <html:text property="username"/><html:errors property="username"/><br/>
password : <html:password property="password"/><html:errors property="password"/><br/>
<html:submit/><html:cancel/>
</html:form>
</body>
</html>
13 在src目錄下的yan.struts.form目錄下自動生成LoginForm.java,在該Java類中編寫validate()函數(shù),進行表單驗證,它完成的功能是:如果表單中輸入的username為空或者password為空,則生成表單驗證錯誤。返回錯誤結(jié)果給login頁面。代碼如下:
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
// TODO Auto-generated method stub
ActionErrors errors=new ActionErrors();
if(username==null||username.length()<1)
{
errors.add("username",new ActionMessage("login.error.username"));
//這里username對應(yīng)的是login.jsp中<html:errors property="username"/>      }
if(password==null||password.length()<1)
{
errors.add("password",new ActionMessage("login.error.userpassword"));
//這里password對應(yīng)的是login.jsp中<html:errors property=" password "/>
}
return errors;
}
當用戶提交了HTML表單后,struts框架將自動把表單數(shù)據(jù)組裝到ActionForm中,Actionform中的屬性和HTML表單中的字段一一對應(yīng)。ActionForm還提供數(shù)據(jù)驗證方法,以及把屬性重新設(shè)置為默認值的方法。Struts框架中定義的ActionForm類是抽象的,必須在應(yīng)用中創(chuàng)建它的子類,來存放具體的HTML表單數(shù)據(jù)。
ActionForm實質(zhì)是一種JavaBean,不過它除了具有javabean的常規(guī)方法,還有兩種特殊方法:validate()用于表單驗證;reset()把屬性重新設(shè)置為默認值。
當用戶提交了HTML表單后,struts框架會自動把表單數(shù)據(jù)組裝到ActionForm中,如果在
Struts-config.xml配置文件中mapping配置中有 validate=true這一選項,則接下來struts框架會自動調(diào)用ActionForm中vlidate()方法進行表單驗證。如果Validate()方法返回的ActionErrors對象為null,或者不包含任何ActionMessage對象,就表示沒有錯誤,數(shù)據(jù)驗證通過。如果ActionErrors中包含ActionMessage對象,就表示發(fā)生了錯誤,Struts框架會把ActionErrors對象保存到request范圍內(nèi),然后把請求轉(zhuǎn)發(fā)到恰當?shù)囊晥D組件,視圖組件通過
<html:errors>標簽把request范圍內(nèi)的ActionErrors對象中包含的錯誤消息顯示出來,提示用戶修改錯誤。
14 上面的代碼中用到了 new ActionMessage("login.error.username"),這里的
login.error.username 需要在ApplicaitonResources.properties中定義。
打開ApplicaitonResources.properties(它在src----yan.struts目錄下)
右擊 ApplicaitonResources.properties,選擇Openwith ------Myeclipse Property Editor,打開編輯器,點擊Add 按鈕添加
15 打開LoginAction.java,在該類中有一個execute()方法,它完成對表單信息的業(yè)務(wù)邏輯驗證以及對相關(guān)處理。編輯該方法如下:
public class LoginAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
String username1=loginForm.getUsername();
String username=null;
try {
username=new String(username1.getBytes("ISO-8859-1"),"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
//以上將form表單中獲得用戶名轉(zhuǎn)換為UTF-8格式。
String password=loginForm.getPassword();
ActionMessages errors=new ActionMessages();
String badusername="admin";
String badpassword="123456";
if(username.equals(badusername))
{
errors.add("username",new ActionMessage("login.error.badusername",badusername));
//如果用戶名驗證失敗,將ActionMessage對象保存到ActionMessages對象errors中。
//login.error.badusername對應(yīng)消息資源文件中的login.error.badusername的值。
saveErrors(request,errors);
//保存ActionMessages對象errors到request范圍。
return new ActionForward(mapping.getInput());
//返回ActionForward對象,Struts框架會把請求轉(zhuǎn)發(fā)到視圖組件login.jsp中,通過來顯示錯誤信息。
}
if(password.equals(badpassword))
{
errors.add("password",new ActionMessage("login.error.badpassword",badpassword));
saveErrors(request,errors);
return new ActionForward(mapping.getInput());
}
request.setAttribute("username",username);
request.setAttribute("password",password);
//將username和password的值存入request范圍內(nèi),可以傳遞到下一頁面。
return mapping.findForward("login-success");//返回下一頁面,login-success對應(yīng)struts-config.xml中<forward>屬性
}
}
所有的Action類都是org.apache.struts.action.Action的子類,Action子類應(yīng)該覆蓋父類的execute()方法,當ActionForm被創(chuàng)建,并且表單驗證順利通過后,struts框架就會調(diào)用Action類的execute()方法,該方法的包含如下參數(shù):
ActionMapping:包含了這個Action的配置信息,和struts-config.xml文件中的<action>元素對應(yīng)。
ActionForm:包含了用戶的表單數(shù)據(jù),當struts框架調(diào)用execute()方法時,ActionForm中的數(shù)據(jù)已經(jīng)通過了表單驗證。
HttpServletRequest:當前的HTTP請求對象。
HttpServletResponse:當前的Http相應(yīng)對象。
16 在WebRoot下新建success.jsp文件,代碼如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
手把手教你在Eclipse中配置并開發(fā)Struts(二)
Struts1.x配置 實現(xiàn)表單驗證
用Struts Validator檢查你的表單
struts demo Struts1.3
Struts1.x系列教程(2):簡單的數(shù)據(jù)驗證
Struts教程
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服