锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
web.xml:
<
web-app聽
id
="WebApp_9"
聽version
="2.4"
聽xmlns
="http://java.sun.com/xml/ns/j2ee"
聽xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
聽xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee聽http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
聽聽聽聽
<
display-name
>
Struts聽Blank
</
display-name
>
聽聽聽聽
<
filter
>
聽聽聽聽聽聽聽聽
<
filter-name
>
struts2
</
filter-name
>
聽聽聽聽聽聽聽聽
聽聽聽 <!--
聽struct聽2聽澶勭悊綾宦?
-->
聽聽聽 <!--
鐩稿簲闇瑕乯ar:
聽聽聽 聽聽聽 聽聽聽 聽聽聽 commons-logging-1.0.4.jar
聽聽聽 聽聽 聽聽 聽聽 聽聽 freemarker-2.3.8.jar
聽聽聽 聽聽 聽聽 聽聽 聽聽 ognl-2.6.11.jar
聽聽聽 聽聽聽 聽聽聽 聽聽聽 struts2-core-2.0.11.1.jar
聽聽聽 聽聽 聽聽 聽聽 聽聽 xwork-2.0.4.jar
聽聽聽 -->
<
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.html
</
welcome-file
>
聽聽聽聽
</
welcome-file-list
>
</
web-app
>
index.html:
聽聽聽 <
head
>
聽聽聽 聽聽聽
<!--
聽鍒╃敤html聽璺寵漿聽
-->
聽聽聽 聽聽聽
<
META聽
HTTP-EQUIV
="Refresh"
聽CONTENT
="0;URL=example/HelloWorld.action"
>
聽聽聽 </
head
>
struct.xml
聽聽聽
<!--
聽妯″潡鍖栨敞鍏ヂ犅?/span>
-->
聽聽聽
<
include聽
file
="example.xml"
/>
聽聽聽聽
<!--
聽Add聽packages聽here聽
-->
聽聽聽聽
example.xml
<!DOCTYPE聽struts聽PUBLIC
聽聽聽聽聽聽聽聽"-//Apache聽Software聽Foundation//DTD聽Struts聽Configuration聽2.0//EN"
聽聽聽聽聽聽聽聽"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
聽聽聽聽<!--聽瀹氫箟鍩熺┖闂綽?/span>-->
聽聽聽聽<package聽name="example"聽namespace="/example"聽extends="struts-default">
聽聽聽聽聽聽聽聽<!--聽鍩熶竴鑸闂?/span>-->
聽聽聽聽聽聽聽聽<action聽name="HelloWorld"聽class="example.HelloWorld">
聽聽聽聽聽聽聽聽聽聽聽聽<result>/example/HelloWorld.jsp</result>
聽聽聽聽聽聽聽聽</action>
<!--HelloWord.java錛堝浗闄呭寲錛?start -->
聽聽聽聽聽聽聽<!--聽錛堝叧閿細action鍒╃敤姝e垯閫夋嫨鏂規硶錛塋ogin(_*)聽 >method="{1}"聽 -->
聽聽聽聽聽聽聽聽<action聽name="Login_*"聽method="{1}"聽class="example.Login">
聽聽聽聽聽聽聽聽聽聽聽聽<result聽name="input">/example/Login.jsp</result>
聽聽聽聽聽聽聽聽聽聽聽聽<result聽type="redirect-action">Menu</result>
聽聽聽聽聽聽聽聽</action>
<!-- example.Login錛堥獙璇佹鏋訛級 start -->
java
<!-- example.Login錛堥獙璇佹鏋訛級 end -->
聽聽聽聽聽聽聽聽<!--聽jsp聽灝佸寘 濡?Missing.action灝辨槸Missiong.jsp -->
聽聽聽聽聽聽聽聽<action聽name="*"聽class="example.ExampleSupport">
聽聽聽聽聽聽聽聽聽聽聽聽<result>/example/{1}.jsp</result>
聽聽聽聽聽聽聽聽</action>
聽聽聽聽聽聽聽聽<!--聽Add聽actions聽here聽-->
聽聽聽聽</package>
</struts>
]]>
瑙e喅錛?/b>Struts validation聽 妗嗘灦
1錛夊厛 寤?Form綾宦犅?font color="#800080"> extendsValidatorForm
聽聽聽
聽聽聽聽private聽String聽pass聽;聽聽聽
2) Jsp 寤虹珛
聽聽聽聽聽聽<font聽color="red"聽><html:errors/></font>
聽聽聽聽<html:form聽action="/test">
聽聽聽聽聽聽聽聽name:<html:text聽property="name"聽/>
聽聽聽聽聽聽聽聽pass:<html:text聽property="pass"聽/>
聽聽聽聽聽聽聽聽<html:submit>submit</html:submit>
聽聽聽聽</html:form>
聽聽</body>
3錛塿alidator.xml寤虹珛
<!DOCTYPE聽form-validation聽PUBLIC
聽聽聽聽聽聽聽聽聽聽"-//Apache聽Software聽Foundation//DTD聽Commons聽Validator聽Rules聽Configuration聽1.0//EN"
聽聽聽聽聽聽聽聽聽聽"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
聽聽聽聽聽聽聽聽聽聽
<form-validation>
聽聽聽聽<formset>
聽聽聽聽聽聽聽聽<form聽name="testForm">
聽聽聽聽聽聽聽聽聽聽聽聽<field聽property="name"聽depends="minlength,maxlength,mask">
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<msg聽name="minlength"聽key="err.minlength"聽/>聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <!-- 褰?minlength閿欐椂 msg 嬋媧?-->
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<msg聽name="maxlength"聽key="err.maxlength"聽/>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<arg0聽key="${var:maxlength}"聽聽resource="false"/>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<arg1聽key="${var:minlength}"聽resource="false"/>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<var>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<var-name>maxlength</var-name>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<var-value>5</var-value>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</var>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<var>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<var-name>minlength</var-name>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<var-value>3</var-value>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</var>
聽聽聽聽聽聽聽聽聽聽聽聽</field>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽</form>
聽聽聽聽</formset>
</form-validation>
4)ApplicationResources.properties
#聽Project聽P/validator
err.minlength=聽err聽min聽<聽3
err.maxlength=聽err聽max聽>聽5
蹇冨緱錛?validation聽 榪欐槸涓毦鍟冪殑楠ㄥご 瑕佸澶氱殑鎺ヨЕ
]]>