Struts2.0灞炰簬Web妗嗘灦錛孧VC 2妯″瀷錛屽叾瀹炲拰浠ュ墠鐨凷truts1.x娌℃湁浠涔堝叧緋伙紝鏂版墜鍙互涓嶇敤鍘誨銆?br />
鍥犱負Struts2.0鏄疻ebwork2.2婕斿彉鑰屾潵銆?br />
絎竴姝ワ細鍒涘緩Web宸ョ▼
瑕佷嬌鐢⊿truts2.0鍏堣鍘諱笅杞藉寘
http://people.apache.org/builds/struts/2.0.10/struts-2.0.10-lib.zip
鎵撳紑struts-2.0.10-lib.zip\struts-2.0.10\lib
鎶婇噷闈ommons-logging-1.0.4.jar錛沠reemarker-2.3.8.jar錛沷gnl-2.6.11.jar錛泂truts2-core-2.0.11.jar錛泋work-2.0.4.jar浜斾釜鍖呰В鍘嬪嚭鏉ワ紝鎷瘋礉鍒頒綘鐨刉eb宸ョ▼鐨刉ebContent/WEB-INF/lib涓?br />
絎簩姝ワ細閰嶇疆web.xml鏂囦歡
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
浠ヤ笂閰嶇疆娣誨姞鍒?lt;web-app></web-app>閲?br />
浣嗘槸鎴戜滑鏈夋椂浼氱敤鍒頒腑鏂囷紝鎵浠ユ垜浠閲嶅啓FilterDispatcher錛堣繃婊ゅ櫒錛?br />
鍦╯rc鐩綍涓嬪垱寤篶om.filter鍖咃紝鍦ㄥ寘涓緩绔婲ewFilter綾伙紝緇ф壙FilterDispatcher 錛屼唬鐮佸涓嬶細
package filter;

import org.apache.struts2.dispatcher.FilterDispatcher;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;


public class NewFilter extends FilterDispatcher
{

private static String encoding = "GB2312";


public void init(FilterConfig filterConfig) throws ServletException
{
super.init(filterConfig);
String encodingParam = filterConfig.getInitParameter("encoding");

if (encodingParam != null && encodingParam.trim().length() != 0)
{
encoding = encodingParam;
}
}

public void doFilter(ServletRequest request, ServletResponse response,

FilterChain chain) throws IOException, ServletException
{
request.setCharacterEncoding(encoding);
super.doFilter(request, response, chain);
}
}

浣嗘槸榪欐牱鏀瑰啓鍚庡彂鐜版病鏁堟灉錛屽叾瀹炴槸web.xml閲岀殑閰嶇疆娌℃湁璋冪敤鑰屽凡錛屾墍浠eb.xml鐨勯厤緗鏀規垚錛?br />
<filter>
<filter-name>struts2</filter-name>
<filter-class>com.filter.NewFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

涓嶉毦鍙戠幇錛孨ewFilter.java閲岀殑 private static String encoding = "GB2312";
鍜寃eb.xml閲岀殑<param-name>encoding</param-name><param-value>GB2312</param-value>
鍏跺疄String encodingParam = filterConfig.getInitParameter("encoding");
灝辨槸浠巜eb.xml涓鍑哄弬鏁板悕涓篹ncoding鐨勫鹼紝鐒跺悗璧嬬粰瀛愮被涓殑encoding鎴愬憳
鎵浠ワ紝浠ュ悗闇瑕佹敼鍙樼紪鐮佹柟寮忓彧闇鍦╳eb.xml涓敼 <param-value>鐨勫?br />
絎笁姝ワ細閰嶇疆struts.xml
鍦╯rc閲屾柊寤轟竴涓猻truts.xml鏂囦歡
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"/>
<package name="com" extends="struts-default">
<action name="hello" class="com.HelloWorld">
<result>Hello.jsp</result>
</action>
</package>
</struts>

娣誨姞鍒皊truts.xml閲?br />
鍦╯rc涓嬫柊寤簊truts.properties娣誨姞濡備笅閰嶇疆錛?br />
struts.locale=zh_CN
struts.i18n.encoding=GB2312
榪欐牱struts灝辮兘璇嗗埆涓枃浜?/p>
絎洓姝ワ細鏂板緩JavaBean
鍦╯rc.com涓嬫柊寤篐elloWorld.java錛屼唬鐮佸涓嬶細
package com;

import com.opensymphony.xwork2.ActionSupport;


public class HelloWorld extends ActionSupport
{
private static final long serialVersionUID = 1L;
private String message;


public String getMessage()
{
return message;
}


public void setMessage(String message)
{
this.message = message;
}

public String execute()
{
System.out.println("Executing action, your message is " + message);
return SUCCESS;
}
}

絎簲姝ワ細鏂板緩jsp欏甸潰
鍦╓ebContent涓嬫柊寤篐elloWorld.jsp錛屼唬鐮佸涓嬶細

<%
@ page contentType="text/html; charset=GB2312" %>

<%
@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>HelloWorld</title>
<s:head />
</head>
<body>
<s:actionerror />
<s:form action="hello">
<s:textfield label="Name" name="message" tooltip="Enter your Name here" />
<s:submit />
</s:form>
</body>
</html>

鍦╓ebContent涓嬫柊寤篐ello.jsp錛屼唬鐮佸涓嬶細

<%
@ page contentType="text/html; charset=GB2312" %>

<%
@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>HelloWorld</title>
<s:head />
</head>
<body>
<h1><s:property value="message" /></h1>
</body>
</html>
浠ヤ笂宸ヤ綔瀹屾垚鍙互鎶妛eb宸ョ▼鎵撳寘錛屽彂甯冨埌tomcat鎴栧叾浠杦eb鏈嶅姟鍣?br />
鍦ㄥ湴鍧鏍忚緭鍏ワ細http://localhost:8080/浣犵殑web宸ョ▼鍚嶇О/HelloWorld.jsp
鍦ㄨ緭鍏ユ杈撳叆淇℃伅鐐瑰嚮submit鎻愪氦錛屼細鍦℉ello.jsp涓婃樉紺哄嚭浣犲垰鎵嶈緭鍏ョ殑淇℃伅
鎬葷粨錛?br />
涓婇潰鐨勪緥瀛愮畝鍗曞湴婕旂ず浜嗭紝Web 搴旂敤紼嬪簭鐨勫熀鏈搷浣溿傜涓錛岄厤緗茍涓嶅鏉傦紱絎簩錛宎ction鎻愪氦鏂瑰紡鐨勬敼鍙橈紝鐩存帴鍦╯truts.xml閲岄厤緗紝鑰屼笉鍐嶅儚1.x閲屼嬌鐢?/p>
request.forwardmapping("");
鏉ユ彁浜わ紱絎笁錛宻truts2鐨勬爣絳懼簱鐢ㄨ搗鏉ユ洿綆鍗曘?/font>

]]>