第一步,导入jar文件
sturts2-core-xxx.jar //核心类库
xwork-core-xxx.jar //构建基础
ognl-xxx.jar //表达式语言类库
freemarker-xxx.jar //标签模板使用类库
javassist-xxx.GA.jar //对字节码进行处理
commons-fileupload-xxx.jar //文件上传时需要使用
commons-io-xxx.jar //java IO扩展
commons-lang-xxx.jar //包含了一些数据
//自动导入上面8个jar文件
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.14.1</version>
</dependency>
第二步:创建处理请求的Action类,可以实现Action接口,实现execute()方法,所有用于处理请求的方法都必须返回一个字符串类型的逻辑结果,Action类的属性来接收用户的输入,需要set和get方法。
import com.opensymphony.xwork2.Action;
public class HelloWorldAction implements Action {
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;
}
@Override
public String execute() {
//获得ServletContext对象
ServletContext servletContext= ServletActionContext.getServletContext();
//获得HttpServletRequest对象
HttpServletRequest request= ServletActionContext.getRequest();
//获得HttpSession对象
HttpSession session=request.getSession();
if(this.getName()==null || this.getName().length()==0){
}
return LOGIN;
}
}
Action接口常用字符串的逻辑含义:
常量 值 逻辑含义
SUCCESS success 表示处理正常,并返回成功后的结果
NONE none 表示处理正常,但不返回给用户信息
ERROR error 表示处理结果失败
INPUT input 表示需要更多用户输入才能顺利执行
LOGIN login 表示需要用户正确登陆后才能顺利执行
第三步:配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<display-name>Archetype Created Web Application</display-name>
<!--引入核心过滤器-->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
</web-app>
第四步:创建struts.xml配置文件
<?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>
<!--编码格式-->
<constant name="struts.i18n.encoding" value="UTF-8"/>
<!--启用动态方法调用,如:url是login!xxx.action,访问Login类的xxx方法。因为可能带来安全隐患,默认是false-->
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<!--可以拆分成多个struts配置文件,默认只加载struts.xml文件,所以用include元素把所有文件整合起来-->
<include file="struts-user.xml"/>
<!--创建一个包,继承自Struts2的struts-default包-->
<package name="index1" extends="struts-default" >
<!--接收处理用户的/login1.action请求,并根据返回结果完成跳转。 method:类的方法名;-->
<action name="login1" class="cn.kgc.action.LoginAction" method="success">
<!--结果为success时,跳转至login.jsp页面-->
<result name="success">login.jsp</result>
<!--结果为error时,跳转至index.jsp页面-->
<result name="error">index.jsp</result>
</action>
</package>
<package name="null" extends="struts-default">
<action name="login" class="cn.kgc.action.Login" method="Login">
<!--redirect:重定向;redirectAction:重定向到action;dispatcher:转发(默认值)-->
<result name="login" type="redirect">WEB-INF/jsp/login.jsp</result>
<!--redirectAction:重定向到上面的login1请求-->
<result name="input" type="redirectAction">login1</result>
</action>
</package>
<!--使用通配符,*User:配置所有以User结尾的URL,method="{1}:值就是name属性值中第一个“*”的值。-->
<!--如:请求为loginUser.action,将由HelloWorldAction类的login()方法执行,返回到/jsp/login.jsp页面-->
<package name="" extends="struts-default">
<action name="*User" class="cn.kgc.action.HelloWorldAction" method="{1}">
<result name="success">WEB-INF/jsp/{1}.jsp</result>
</action>
</package>
</struts>
第五步:编译部署并启动服务器
|
|