對於struts2現在用的是相當的多啊,,不學看來就得落伍了,記下一系列的學習筆記,供以後復習使用。
首先還是從所有程序員都認識的HelloWorld開始。
1、加入必要的開發包,這裡所列的包是從struts2自帶的demo中拷貝出來的。有如下的一些。
2、配置web.xml:
[html]
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.5"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
-
- <filter>
- <filter-name>struts2</filter-name>
- <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
- </filter>
-
- <filter-mapping>
- <filter-name>struts2</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- </web-app>
3、編寫進行邏輯處理的Action
Action可以是普通的POJO、還可以是繼承ActionSupport的類、或是實現Action的類,對於繼承或實現的方式,裡面會有一些常量,方便作為返回值使用
[java]
- Action.ERROR ;
- Action.INPUT ;
- Action.LOGIN ;
- Action.NONE ;
- Action.SUCCESS ;
編寫一個簡單的類實現ActionSupport
[java]
- package com.akwolf.helloworld.action;
-
- import com.opensymphony.xwork2.ActionSupport;
-
- public class LoginAction extends ActionSupport {
- private static final long serialVersionUID = 1L;
-
- private String username;
- private String password;
-
- @Override
- public String execute() throws Exception {
- if ("akwolf".equals(username) && "123456".equals(password)) {
- return "success";
- }
-
- return "error";
- }
-
-
-
- public String getUsername() {
- return username;
- }
-
- public void setUsername(String username) {
- this.username = username;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- }
4、進行struts.xml的配置
[html]
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE struts PUBLIC
- "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
- "http://struts.apache.org/dtds/struts-2.0.dtd">
-
- <struts>
- <!-- 包機制防止重名,action也必須放在package下 ,可以繼承自一個包-->
- <package name="helloworld" extends="struts-default" namespace="/">
- <!-- 具體的用來請求處理邏輯的action,並指定使用哪一個action進行處理 -->
- <action name="login" class="com.akwolf.helloworld.action.LoginAction">
- <!-- action處理後的返回結果,根據結果進行相應的視圖跳轉 -->
- <result name="success">/welcom.html</result>
- <result name="error">/error.html</result>
- </action>
- </package>
- </struts>
5、編寫三個簡單頁面,進行視圖層的顯示。
index.jsp
[html]
- <body>
- <form action="login.action" method="post">
- <table align="center">
- <caption><h3>用戶登錄</h3></caption>
- <tr>
- <td>
- <span style="white-space:pre"> </span>用戶名:<input type="text" name="username" />
- </td>
- </tr>
- <tr>
- <td>
- <span style="white-space:pre"> </span>密碼:<input type="text" name="password"/>
- </td>
- </tr>
- <tr align="center">
- <td>
- <span style="white-space:pre"> </span><input type="submit" value="登錄"/>
- <span style="white-space:pre"> </span><input type="reset" value="重置"/>
- </td>
- </tr>
- </table>
- </form>
- </body>
welocm.html
[html]
- <body>
- <h3>歡迎方位<a href="index.jsp">返回</a></h3>
- </body>
error.html
[html]
- <body>
- <h3>信息錯誤!!<a href="index.jsp">返回</a></h3>
- </body>
ok,部署運行,第一個struts程序搞到!!!!