引言:這是一個關於Struts2的簡單登錄界面,下面我們一起來看看代碼的構成,相互學習學習...
代碼結構圖如下:
可以看出貌似和servlet的登錄DEMO相比就多了一個struts.xml文件。
下面我依次來介紹下各個文件的大致內容,
web.xml:
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
struts.xml:
<struts>
<package name="struts2" extends="struts-default">
<action name="login" class="com.action.LoginAction">
<result name="success">/success.jsp</result>
<result name="fail">/index.jsp</result>
</action>
</package>
</struts>
index.jsp:
<body>
<form id="formId" action="login.action" method="post">
<input type="hidden" id="errMsg" name="errMsg" value='${errMsg}' />
<table>
<tr>
<td>用戶名 </td>
<td><input type="text" id="name" name="name"></td>
</tr>
<tr>
<td>密碼</td>
<td><input type="password" id="password" name="password"></td>
</tr>
<tr>
<td><input type="submit" value="登錄" /></td>
</tr>
</table>
</form>
</body>
<script type="text/javascript">
var errMsg=document.getElementById("errMsg").value;
if(errMsg!=null&&errMsg!=''){
alert(errMsg);
}
</script>
這裏需要注意的是action="login.action"裏面的login必須和struts.xml裏面的name="login"保持一致,這樣頁面提交的時候才能找到對應的Action。
在此期間遇到了這樣的一個問題,我最開始把<script type="text/javascript">裏面的內容寫在了body的上面,就一直沒法得到errMsg的值,後來問同事才知道,有可能是在獲得的時候,頁面還沒有加載完全,所以還沒法得到errMsg,最後我就將它移到下面來就可以了,讓errMsg先加載出來,我再取值。
LoginAction.java:
public class LoginAction {
public String name;
public String password;
public String errMsg;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getErrMsg() {
return errMsg;
}
public void setErrMsg(String errMsg) {
this.errMsg = errMsg;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute(){//頁面提交後默認執行的方法
if("zwm".equals(name)&&"1".equals(password)){
return "success";
}else{
errMsg=" 密碼或用戶名不正確,請重新登錄";
return "fail";
}
}
}
success.jsp:
<td>歡迎${name}登錄</td>
DEMO下載地址:http://download.csdn.net/detail/javaweiming/7029217