从网上搜集了很多资料,一直以为这个文件只能自动生成,后来才发现,我下载的struts 2.5版本的与之前的版本有很多不同,应该是没有办法自动生成。于是只能手动生成。
生成过程如下:
1,首先自己在src下面自己建立一个struts.xml文件
2,将下面的代码需要的部分粘贴过去,一般需要自己修改的是添加包的那一部分
以登录案例为例:
action name是你的输入页面login.jsp表单的action 的值,这两个值要一致
result name是你最后要跳转的页面,result name可以有多个,这个是根据你的action 的选择决定的
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<include file="structs-default.xml"></include>
<!-- 指定默认编码集 -->
<constant name="struts.i18n.encoding" value="UTF-8"/>
<!-- 指定Structs2处理的请求后缀 -->
<constant name="structs.action.extension" value="do,action"/>
<!-- 设置浏览器是否缓存静态内容,开发阶段应关闭,生产阶段打开,默认为打开 -->
<constant name="structs.serve.static.browserCache" value="false"/>
<!-- 当struts配置文件修改后,系统是否重新加载该文件,默认为false,开发阶段应打开 -->
<constant name="struts.configuration.xml.reload" value="true"/>
<!-- 开发阶段可以打印出更详细的错误信息 -->
<constant name="struts.devMode" value="true"/>
<!-- 是否开启方法调用 -->
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<!--添加包 -->
<package name="gzy" namespace="/" extends="struts-default">
<action name="hello" class="gzy.Hello" method="test">
<!-- 定义三个逻辑视图和物理资源之间的映射 -->
<result name="index">/index.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
3,连接输入页面和输出页面的是Action
创建Action类
首先在src下面创建一个包,包名叫gzy,然后在这个包名下面创建一个类,Hello.java,
注意:这个类必须要继承ActionSupport、
例:
package gzy;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class Hello extends ActionSupport {
HttpServletRequest req=ServletActionContext.getRequest();
String username=req.getParameter("username");
String password=req.getParameter("password");
public String test(){
if(username.equals("A")&&password.equals("B")){
return "index"; //返回值对应的是struts.xml的result name
}
else
return "error";
}
}