日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实战struts2——用户登录

發(fā)布時間:2025/6/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实战struts2——用户登录 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

內(nèi)容提要:本文通過“用戶登錄”這個簡單功能,介紹struts2的標志(Tag)、Action、輸入校驗(Input Validation)以及本地化輸出(Localizing Output)。

開發(fā)環(huán)境:myeclipse5.0+eclipse3.2+jdk5.0+tomcat5.5+struts2+junit3.8(同實戰(zhàn)struts2——Hello World)

項目目錄結構





















項目文件
1. 首先我們?yōu)椤坝脩舻卿洝碧峁┮粋€簡單入口
Welcome.jsp:

?<%?@?taglib?prefix?=?"?s?"??uri?=?"?/struts-tags?"?%>?
?
<?html?>?
????
?<?head?>?
????????
?<?title?>?Welcome?</?title?>?
????????
?<?link??href?="<s:url?value="?/css/tutorial.css"?/>?"?rel="stylesheet"?type="text/css"?/>
????
?</?head?>?
????
?<?body?>?
????????
?<?h3?>?
????????????Commands
????????
?</?h3?>?
????????
?<?ul?>?
????????????
?<?li?>?
????????????????
?<?a??href?="<s:url?action="?Register"?/>?">Register?</?a?>?
????????????
?</?li?>?
????????????
?<?li?>?
????????????????
?<?a??href?="<s:url?action="?Logon!input"?/>?">Sign?On?</?a?>?
????????????
?</?li?>?
????????
?</?ul?>?
????
?</?body?>?
?
</?html?> 這里,我們用到的是這句:
<a?href="<s:url?action="Logon!input"/>">Sign?On</a> 暫時先不理會“ !input ”的具體意義,接著往下看。

2. 登錄頁面
Logon.jsp :
<%@?taglib?prefix="s"?uri="/struts-tags"%>
<html>
????
<head>
????????
<title>Login</title>
????
</head>
????
<body>
????????
<s:form?action="Logon">
????????????
<s:textfield?label="User?Name"?name="username"?/>
????????????
<s:password?label="Password"?name="password"?/>
????????????
<s:submit?/>
????????
</s:form>
????
</body>
</html>
3. 接著,編寫與之對應的Action類。
com.cleversoft.struts2.demo.Logon.java :
package?com.cleversoft.struts2.demo;

import?com.opensymphony.xwork2.ActionSupport;

public?class?Logon?extends?ActionSupport?{

????
/**
?????*?
?????
*/

????
private?static?final?long?serialVersionUID?=?-9039794122089833258L;

????
public?String?execute()?throws?Exception?{

????????
if?(isInvalid(getUsername()))
????????????
return?INPUT;
????????
if?(isInvalid(getPassword()))
????????????
return?INPUT;
????????
return?SUCCESS;
????}


????
private?boolean?isInvalid(String?value)?{
????????
return?(value?==?null?||?value.length()?==?0);
????}


????
private?String?username;

????
public?String?getUsername()?{
????????
return?username;
????}


????
public?void?setUsername(String?username)?{
????????
this.username?=?username;
????}


????
private?String?password;

????
public?String?getPassword()?{
????????
return?password;
????}


????
public?void?setPassword(String?password)?{
????????
this.password?=?password;
????}


}
需要注意這句:
????????if?(isInvalid(getUsername()))
????????????
return?INPUT;
????????
if?(isInvalid(getPassword()))
????????????
return?INPUT;
????????
return?SUCCESS; 如果用戶名和密碼均不為空的話,返回“success”,響應 Menu.jsp 頁面;否則返回“input”,響應Logon.jsp頁面。(見隨后 struts.xml 中的Action配置)
現(xiàn)在我們可以回想上面出現(xiàn)的“ !input ”。

4. 以上提到返回“input”,那接著看看與之對應的輸入校驗頁面。
Logon-validation.xml :
<!DOCTYPE?validators?PUBLIC?
"-//OpenSymphony?Group//XWork?Validator?1.0.2//EN"?
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"
>

<validators>
????
<field?name="username">
????????
<field-validator?type="requiredstring">
????????????
<message>Username?is?required</message>
????????
</field-validator>
????
</field>
????
<field?name="password">
????????
<field-validator?type="requiredstring">
????????????
<message>Password?is?required</message>
????????
</field-validator>
????
</field>
</validators>

需要注意的是,命名需要與與其對應的Action類匹配。

5. 最后需要進行Action配置。
struts.xml:

<!DOCTYPE?struts?PUBLIC
????"-//Apache?Software?Foundation//DTD?Struts?Configuration?2.0//EN"
????"http://struts.apache.org/dtds/struts-2.0.dtd"
>
<struts>
????
<package?name="com.cleversoft.struts2.demo"
????????extends
="struts-default">
????????
<action?name="HelloWorld"
????????????class
="com.cleversoft.struts2.demo.HelloWorld">
????????????
<result>/HelloWorld.jsp</result>
????????
</action>
????????
<action?name="Welcome">
????????????
<result>/Welcome.jsp</result>
????????
</action>
????????
<action?name="Menu">
????????????
<result>/Menu.jsp</result>
????????
</action>
????????
<action?name="Logon!*"?method="{1}"
????????????class
="com.cleversoft.struts2.demo.Logon">
????????????
<result?type="redirect-action">Menu</result>
????????????
<result?name="input">/Logon.jsp</result>
????????
</action>
????
</package>
</struts> 其中:
????????<action?name="Logon!*"?method="{1}"
????????????class
="com.cleversoft.struts2.demo.Logon">
????????????
<result?type="redirect-action">Menu</result>
????????????
<result?name="input">/Logon.jsp</result>
????????
</action> “method="{1}"”等價于“method=input”,這是通配符式的寫法。

6. 其他
Menu.jsp :
<html>
????
<head>
????????
<title>Missing?Feature</title>
????
</head>

????
<body>
????????
<p>
????????????This?feature?is?under?construction.?Please?try?again?in?the?next?interation.
????????
</p>
????
</body>
</html>

7. 運行
訪問http://localhost:8080/struts2/Welcome.action
運行結果:







登錄






輸入校驗









登錄成功










8. 本地化輸出
首先需要添加資源文件
package.properties:

requiredstring?=?$\{getText(fieldName)}?is?required.
password?
=?Password
username?
=?User?Name

接著需要修改Logon-validation.xml和Logon.jsp
Logon-validation.xml:

<!DOCTYPE?validators?PUBLIC?
"-//OpenSymphony?Group//XWork?Validator?1.0.2//EN"?
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"
>

<validators>
????
<field?name="username">
????????
<field-validator?type="requiredstring">
????????????
<message?key="requiredstring"/>
????????
</field-validator>
????
</field>
????
<field?name="password">
????????
<field-validator?type="requiredstring">
????????????
<message?key="requiredstring"/>
????????
</field-validator>
????
</field>
</validators>

Logon.jsp:

<%@?taglib?prefix="s"?uri="/struts-tags"%>
<html>
????
<head>
????????
<title>Login</title>
????
</head>
????
<body>
????????
<s:form?action="Logon">
????????????
<s:textfield?label="%{getText('username')}"?name="username"/>
????????????
<s:password?label="%{getText('password')}"?name="password"?/>
????????????
<s:submit?/>
????????
</s:form>
????
</body>
</html>



參考資料:
1.?Getting Started
2.?http://www.blogjava.net/max/category/16130.html

總結

以上是生活随笔為你收集整理的实战struts2——用户登录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。