代碼
package com.helloworld.struts.action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction extends ActionSupport{
private String userName;//保存請求參數用戶姓名
private String reslutStr;//存放處理結果
/** 重載ActionSupport類的execute方法 */
public String execute(){
reslutStr="這是業務控制器HelloAction處理的結果內容!";
return SUCCESS;
}
/** 手動進行表單驗證 */
public void validate(){
//用戶姓名不能爲空
if(userName==null||userName.trim().length()<1){
addFieldError("userName",getText("username.error"));
}
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getReslutStr() {
return reslutStr;
}
public void setReslutStr(String reslutStr) {
this.reslutStr = reslutStr;
}
}
struts.xml
<?xml version="1.0" encoding="gbk"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 設置Web應用的默認編碼集爲gbk -->
<constant name="struts.i18n.encoding" value="gbk"/>
<!-- 設置Web應用的默認Locale爲zh_CN -->
<constant name="struts.locale" value="zh_CN" />
<!-- 設置Struts2應用的國際化資源文件,多個文件中間可用逗號分隔 -->
<constant name="struts.custom.i18n.resources" value="messageResource"/>
<!-- 設置Struts2應用是否處於開發模式,通常在開發調試階段設爲true,正式上線後可設爲false -->
<constant name="struts.devMode" value="true" />
<!-- 設置Struts2的默認主題爲simple -->
<constant name="struts.ui.theme" value="simple" />
<!-- 定義一個名爲hello的包,繼承Struts2的默認包 -->
<package name="hello" extends="struts-default">
<!-- 配置業務控制器HelloAction映射 -->
<action name="sayhello" class="com.helloworld.struts.action.HelloAction">
<!-- 定義名爲success的局部result,其結果類型爲默認的dispatcher -->
<result>/welcome.jsp</result>
<!-- 定義名爲input的局部result,其結果類型爲默認的dispatcher -->
<result name="input">/index.jsp</result>
</action>
</package>
</struts>
web.xml
<?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">
<!-- 配置struts2的核心控制器StrutsPrepareAndExecuteFilter -->
<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>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
index.jsp
<%@ page contentType="text/html; charset=gbk"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title><s:text name="title.text"/></title>
</head>
<body>
<s:form action="sayhello">
<s:text name="label.name"/>
<s:textfield name="userName" size="22"/>
<s:submit key="label.submit"/>
<s:reset key="label.reset"/>
</s:form>
<s:if test="hasFieldErrors()">
<s:fielderror/>
</s:if>
</body>
</html>
welcome.jsp
<%@ page contentType="text/html; charset=gbk"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title><s:text name="title.text"/></title>
</head>
<body>
${userName},<s:text name="label.welcome"/><br/>
${reslutStr}
</body>
</html>