天天看點

Struts2的兩個典型應用執行個體參考

Struts标簽下的使用者注冊

第一步:建立動态項目,加入相關類包

第二步:在web.xml檔案中注冊Struts2提供的StrutsPrepareAndFilter過濾器

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

<code>&lt;</code><code>web-app</code> <code>xmlns:xsi</code><code>=</code><code>"http://www.w3.org/2001/XMLSchema-instance"</code>

<code>    </code><code>xmlns</code><code>=</code><code>"http://java.sun.com/xml/ns/javaee"</code> <code>xmlns:web</code><code>=</code><code>"http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"</code>

<code>    </code><code>xsi:schemaLocation</code><code>=</code><code>"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"</code>

<code>    </code><code>id</code><code>=</code><code>"WebApp_ID"</code> <code>version</code><code>=</code><code>"2.5"</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>welcome-file-list</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>welcome-file</code><code>&gt;index.html&lt;/</code><code>welcome-file</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>welcome-file</code><code>&gt;index.htm&lt;/</code><code>welcome-file</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>welcome-file</code><code>&gt;index.jsp&lt;/</code><code>welcome-file</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>welcome-file</code><code>&gt;default.html&lt;/</code><code>welcome-file</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>welcome-file</code><code>&gt;default.htm&lt;/</code><code>welcome-file</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>welcome-file</code><code>&gt;default.jsp&lt;/</code><code>welcome-file</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>welcome-file-list</code><code>&gt;</code>

<code>    </code><code>&lt;!-- Struts2過濾器 --&gt;</code>

<code>    </code><code>&lt;</code><code>filter</code><code>&gt;</code>

<code>        </code><code>&lt;!-- 過濾器名稱 --&gt;</code>

<code>        </code><code>&lt;</code><code>filter-name</code><code>&gt;struts2&lt;/</code><code>filter-name</code><code>&gt;</code>

<code>        </code><code>&lt;!-- 過濾器類 --&gt;</code>

<code>        </code><code>&lt;!-- 注冊Struts2提供的StrutsPrepareAndExecuteFilter過濾器 --&gt;</code>

<code>        </code><code>&lt;</code><code>filter-class</code><code>&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/</code><code>filter-class</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>filter</code><code>&gt;</code>

<code>    </code><code>&lt;!-- Struts2過濾器映射 --&gt;</code>

<code>    </code><code>&lt;</code><code>filter-mapping</code><code>&gt;</code>

<code>        </code><code>&lt;!-- 過濾器映射 --&gt;</code>

<code>        </code><code>&lt;</code><code>url-pattern</code><code>&gt;/*&lt;/</code><code>url-pattern</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>filter-mapping</code><code>&gt;</code>

<code>&lt;/</code><code>web-app</code><code>&gt;</code>

第三步:建立index.jsp首頁(通過struts2提供的表單标簽編寫使用者系統資料庫單)

<code>&lt;</code><code>h2</code><code>&gt;使用者注冊&lt;/</code><code>h2</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>s:form</code> <code>action</code><code>=</code><code>"userAction"</code> <code>method</code><code>=</code><code>"post"</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>s:textfield</code> <code>name</code><code>=</code><code>"name"</code> <code>label</code><code>=</code><code>"使用者名"</code> <code>required</code><code>=</code><code>"true"</code> <code>requiredposition</code><code>=</code><code>"left"</code><code>&gt;&lt;/</code><code>s:textfield</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>s:password</code> <code>name</code><code>=</code><code>"password"</code> <code>label</code><code>=</code><code>"密碼"</code> <code>required</code><code>=</code><code>"true"</code> <code>requiredposition</code><code>=</code><code>"left"</code><code>&gt;&lt;/</code><code>s:password</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>s:radio</code> <code>name</code><code>=</code><code>"sex"</code> <code>list</code><code>=</code><code>"#{1 : '男', 0 : '女'}"</code> <code>label</code><code>=</code><code>"性别"</code>  <code>required</code><code>=</code><code>"true"</code> <code>requiredposition</code><code>=</code><code>"left"</code><code>&gt;&lt;/</code><code>s:radio</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>s:select</code> <code>list</code><code>=</code><code>"{'請選擇地區','廣州','深圳','佛山','茂名'}"</code> <code>name</code><code>=</code><code>"area"</code> <code>label</code><code>=</code><code>"地區"</code><code>&gt;&lt;/</code><code>s:select</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>s:checkboxlist</code> <code>list</code><code>=</code><code>"{'足球','羽毛球','乒乓球','籃球'}"</code> <code>name</code><code>=</code><code>"hobby"</code> <code>label</code><code>=</code><code>"愛好"</code><code>&gt;&lt;/</code><code>s:checkboxlist</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>s:textarea</code> <code>name</code><code>=</code><code>"description"</code> <code>cols</code><code>=</code><code>"30"</code> <code>rows</code><code>=</code><code>"5"</code> <code>label</code><code>=</code><code>"描述"</code><code>&gt;&lt;/</code><code>s:textarea</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>s:submit</code> <code>value</code><code>=</code><code>"注冊"</code><code>&gt;&lt;/</code><code>s:submit</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>s:reset</code> <code>value</code><code>=</code><code>"重置"</code><code>&gt;&lt;/</code><code>s:reset</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>s:form</code><code>&gt;</code>

第四步:建立注冊後的傳回頁面success.jsp

<code>&lt;</code><code>div</code><code>&gt;</code>

<code>  </code><code>&lt;</code><code>ul</code><code>&gt;</code>

<code>&lt;</code><code>li</code><code>&gt;使用者名:&lt;</code><code>s:property</code> <code>value</code><code>=</code><code>"name"</code><code>/&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code><code>&gt;密碼:&lt;</code><code>s:property</code> <code>value</code><code>=</code><code>"password"</code><code>/&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code><code>&gt;性别:&lt;</code><code>s:if</code> <code>test</code><code>=</code><code>"sex==0"</code><code>&gt;女&lt;/</code><code>s:if</code><code>&gt;&lt;</code><code>s:else</code><code>&gt;男&lt;/</code><code>s:else</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code><code>&gt;地區:&lt;</code><code>s:property</code> <code>value</code><code>=</code><code>"area"</code><code>/&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code><code>&gt;愛好:&lt;</code><code>s:property</code> <code>value</code><code>=</code><code>"hobby"</code><code>/&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;</code><code>li</code><code>&gt;描述:&lt;</code><code>s:property</code> <code>value</code><code>=</code><code>"description"</code><code>/&gt;&lt;/</code><code>li</code><code>&gt;</code>

<code>&lt;/</code><code>ul</code><code>&gt;</code>

<code>&lt;/</code><code>div</code><code>&gt;</code>

第五步:建立UserAction類,繼承于ActionSupport類,作用是對使用者注冊請求及使用者資訊編輯請求處理

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

<code>public</code> <code>class</code> <code>UserAction </code><code>extends</code> <code>ActionSupport{</code>

<code>    </code><code>private</code> <code>static</code> <code>final</code> <code>long</code> <code>serialVersionUID = 1L;</code>

<code>    </code><code>// 使用者名</code>

<code>    </code><code>private</code> <code>String name;</code>

<code>    </code><code>// 密碼</code>

<code>    </code><code>private</code> <code>String password;</code>

<code>    </code><code>// 描述</code>

<code>    </code><code>private</code> <code>String description;</code>

<code>    </code><code>// 性别</code>

<code>    </code><code>private</code> <code>int</code> <code>sex = </code><code>0</code><code>;</code>

<code>    </code><code>// 省份</code>

<code>    </code><code>private</code> <code>String area;</code>

<code>    </code><code>// 愛好</code>

<code>    </code><code>private</code> <code>String[] hobby;</code>

<code>    </code><code>// 使用者注冊</code>

<code>    </code><code>public</code> <code>String execute() </code><code>throws</code> <code>Exception {</code>

<code>        </code><code>return</code> <code>SUCCESS;</code>

<code>    </code><code>}</code>

<code>    </code><code>public</code> <code>String getName() {</code>

<code>        </code><code>return</code> <code>name;</code>

<code>    </code><code>public</code> <code>void</code> <code>setName(String name) {</code>

<code>        </code><code>this</code><code>.name = name;</code>

<code>    </code><code>public</code> <code>String getPassword() {</code>

<code>        </code><code>return</code> <code>password;</code>

<code>    </code><code>public</code> <code>void</code> <code>setPassword(String password) {</code>

<code>        </code><code>this</code><code>.password = password;</code>

<code>    </code><code>public</code> <code>String getDescription() {</code>

<code>        </code><code>return</code> <code>description;</code>

<code>    </code><code>public</code> <code>void</code> <code>setDescription(String description) {</code>

<code>        </code><code>this</code><code>.description = description;</code>

<code>    </code><code>public</code> <code>int</code> <code>getSex() {</code>

<code>        </code><code>return</code> <code>sex;</code>

<code>    </code><code>public</code> <code>void</code> <code>setSex(</code><code>int</code> <code>sex) {</code>

<code>        </code><code>this</code><code>.sex = sex;</code>

<code>    </code><code>public</code> <code>String getArea() {</code>

<code>        </code><code>return</code> <code>area;</code>

<code>    </code><code>public</code> <code>void</code> <code>setArea(String area) {</code>

<code>        </code><code>this</code><code>.area = area;</code>

<code>    </code><code>public</code> <code>String[] getHobby() {</code>

<code>        </code><code>return</code> <code>hobby;</code>

<code>    </code><code>public</code> <code>void</code> <code>setHobby(String[] hobby) {</code>

<code>        </code><code>this</code><code>.hobby = hobby;</code>

<code>}</code>

第六步:建立配置檔案Struts.xml,在該檔案中配置UserAction對象(要放在src檔案夾下)

<code>&lt;!DOCTYPE struts PUBLIC</code>

<code>    </code><code>"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"</code>

<code>    </code><code>"http://struts.apache.org/dtds/struts-2.1.dtd"&gt;</code>

<code>    </code><code>&lt;</code><code>struts</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 聲明變量(開發模式) --&gt;</code>

<code>    </code><code>&lt;</code><code>constant</code> <code>name</code><code>=</code><code>"struts.devMode"</code> <code>value</code><code>=</code><code>"true"</code> <code>/&gt;</code>

<code>    </code><code>&lt;!-- 聲明包 --&gt;</code>

<code>    </code><code>&lt;</code><code>package</code> <code>name</code><code>=</code><code>"myPackge"</code> <code>extends</code><code>=</code><code>"struts-default"</code><code>&gt;</code>

<code>        </code><code>&lt;!-- 建立TagAction的映射  --&gt;</code>

<code>        </code><code>&lt;</code><code>action</code> <code>name</code><code>=</code><code>"userAction"</code> <code>class</code><code>=</code><code>"com.lxy.UserAction"</code><code>&gt;</code>

<code>            </code><code>&lt;!-- 注冊成功的傳回頁面 --&gt;</code>

<code>            </code><code>&lt;</code><code>result</code><code>&gt;success.jsp&lt;/</code><code>result</code><code>&gt;</code>

<code>        </code><code>&lt;/</code><code>action</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>package</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>struts</code><code>&gt;</code>

最後運作效果如下:

輸入注冊資訊

<a href="http://s3.51cto.com/wyfs02/M02/11/F4/wKioL1LodEvwd7QKAAK9QoEqsGE880.jpg" target="_blank"></a>

注冊成功

<a href="http://s3.51cto.com/wyfs02/M01/11/F5/wKiom1LodJ6zT_fVAAG3UcDzqF8926.jpg" target="_blank"></a>

Struts2标簽下使用驗證架構對資料校驗

第三步:建立使用者登入的Action對象UserAction,并配置到Struts.xml中

<code>    </code><code>private</code> <code>String username;</code><code>// 使用者名</code>

<code>    </code><code>private</code> <code>String password;</code><code>// 密碼</code>

<code>    </code><code>// 使用者登入</code>

<code>    </code><code>@Override</code>

<code>    </code><code>public</code> <code>String getUsername() {</code>

<code>        </code><code>return</code> <code>username;</code>

<code>    </code><code>public</code> <code>void</code> <code>setUsername(String username) {</code>

<code>        </code><code>this</code><code>.username = username;</code>

Struts.xml

<code>&lt;</code><code>struts</code><code>&gt;</code>

<code>        </code><code>&lt;!-- 配置UserAction --&gt;</code>

<code>            </code><code>&lt;!-- 使用者登入頁面 --&gt;</code>

<code>            </code><code>&lt;</code><code>result</code> <code>name</code><code>=</code><code>"input"</code><code>&gt;/login.jsp&lt;/</code><code>result</code><code>&gt;</code>

<code>            </code><code>&lt;!-- 注冊成功頁面 --&gt;</code>

<code>            </code><code>&lt;</code><code>result</code><code>&gt;/success.jsp&lt;/</code><code>result</code><code>&gt;</code>

<code>&lt;/</code><code>struts</code><code>&gt;</code>

第四步:建立使用者登入頁面login.jsp(通過Struts表單标簽建立)

<code>&lt;</code><code>s:form</code> <code>action</code><code>=</code><code>"userAction"</code> <code>method</code><code>=</code><code>"post"</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>s:textfield</code> <code>name</code><code>=</code><code>"username"</code> <code>label</code><code>=</code><code>"使用者名"</code> <code>required</code><code>=</code><code>"true"</code> <code>requiredposition</code><code>=</code><code>"left"</code><code>&gt;&lt;/</code><code>s:textfield</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>s:submit</code> <code>key</code><code>=</code><code>"submit"</code> <code>value</code><code>=</code><code>"登入"</code><code>&gt;&lt;/</code><code>s:submit</code><code>&gt;</code>

第五步:建立success.jsp

<code>&lt;</code><code>h2</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>s:property</code> <code>value</code><code>=</code><code>"username"</code><code>/&gt;,登入成功</code>

<code>    </code><code>&lt;/</code><code>h2</code><code>&gt;</code>

第六步:編寫使用者驗證檔案UserAction-validation.xml(必須放在UserAction所在包中)

<code>&lt;</code><code>validators</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 驗證使用者名 --&gt;</code>

<code>    </code><code>&lt;</code><code>field</code> <code>name</code><code>=</code><code>"username"</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>field-validator</code> <code>type</code><code>=</code><code>"requiredstring"</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>message</code><code>&gt;請輸入使用者名&lt;/</code><code>message</code><code>&gt;</code>

<code>        </code><code>&lt;/</code><code>field-validator</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>field</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 驗證密碼 --&gt;</code>

<code>    </code><code>&lt;</code><code>field</code> <code>name</code><code>=</code><code>"password"</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>message</code><code>&gt;請輸入密碼&lt;/</code><code>message</code><code>&gt;</code>

<code>&lt;/</code><code>validators</code><code>&gt;</code>

登入

<a href="http://s3.51cto.com/wyfs02/M02/11/F5/wKiom1LoeHuzO_USAAGWy7IqZxc293.jpg" target="_blank"></a>

成功登入

<a href="http://s3.51cto.com/wyfs02/M00/11/F5/wKiom1LoeLCTDWgeAAF0sAyyspY565.jpg" target="_blank"></a>

本文轉自lixiyu 51CTO部落格,原文連結:http://blog.51cto.com/lixiyu/1355303,如需轉載請自行聯系原作者