先在src下创建两个File,提供程序所需的资源文件
(粗心的程序员可要注意了File文件名一定不要写错,该文件以key,value的形式出现)具体代码如下:
接下来写视图层index.jsp内代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>中英文切换</title>
</head>
<body>
<s:i18n name="message">
<s:text name="check"></s:text>:
<a href="login.action?request_locale=zh_CN"><s:text name="chinese"></s:text></a>
<a href="login.action?request_locale=en_US"><s:text name="english"></s:text></a>
<form action="<%=basePath%>t1" method="post">
<table>
<tr>
<td><s:text name="login.username"/></td>
<td><input type="text" name="user.userName"/></td>
</tr>
<tr>
<td><s:text name="login.password"/></td>
<td><input type="text" name="user.password"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="<s:text name="login.btn"/>"/></td>
</tr>
</table>
</form>
</s:i18n>
</body>
</html>
其中a标签的login为struts.xml 的action name属性。
其次是controller层封装类indexAction但“execute”和“success”为可变因素但切记一定要在struts.xml中配置所对应的属性名,否则就找不到所对应的action。
package com.hnpi.action;
import com.opensymphony.xwork2.ActionSupport;
public class indexAction extends ActionSupport{
private String name;
private String pwd;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String execute(){
return "success";
}
}
在创建一个action,里面只放一个execute方法
package com.hnpi.action;
public class LanguageAction {
public String execute(){
return "success";
}
}
然后配置最为重要的struts.xml页面。
<?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>
<package name="default" namespace="/" extends="struts-default">
<action name="t1" class="com.hnpi.action.indexAction">
<result name="success">/welcome.jsp</result>
</action>
<action name="login" class="com.hnpi.action.LanguageAction">
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
这里一定要小心class的路径和action name的属性名称(result name属性的名称为封装类中execute类的返回内容)
最后配置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">
<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>
最后是我的程序运行效果图