您的位置:首页 > 编程语言 > Java开发

web框架——struts2操作

2016-08-08 22:59 387 查看
struts2

主要写一些学习的常见操作,跟着别人的视频学的希望大家喜欢。


一,环境的搭建

1.拷jar包就不用说了,网上下好jar包将里面案例的jar包加载到项目就好
2.配置核心过滤器。配置信息写在WEB-INF的web.xml中。高版本是没有自动建立这个xml文档的,如果没有就自己建一个开头的
写法网上都有实在不行就拷贝。不写在xml文档中好像也可以,但是我目前不知道怎么好以后知道了再分享。


<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>


3.建立struts.xml的配置文件,放在应用的类路径的顶端(开发中:src目录下)


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true" />
</struts>


Struts2的配置文件和加载顺序

1、default.properties 该文件保存在 struts2-core-2.3.7.jar 中 org.apache.struts2中
2、struts-default.xml 该文件保存在 struts2-core-2.3.7.jar
3、struts-plugin.xml 该文件保存在struts-Xxx-2.3.7.jar(struts2的插件jar包中)
4、struts.xml 该文件是web应用默认的struts配置文件
5、struts.properties 该文件是Struts的默认配置文件。构建路径的顶端
6、web.xml应用的配置文件
按照从1到6的顺序加载配置文件。后面的内容会覆盖前面的内容。


编写Action类并配置

Action类其实就是一个java实例类,你可以选择直接写也可以选择实现框架的Action接口
一般选择继承ActionSupport它实现了接口而且提供了很多常量和方法。


public class ActionTest extends ActionSupport{
public String test(){
System.out.println("测试");
return SUCCESS;//这些常量就是继承父类而来。
//Action类的方法一般都返回一个字符串,以便在配置信息中查找后续操作。
}
}


//前面的name为访问时的url地址资源 后面的method为访问该类的那个方法
<action name="test" class="com.test.action.ActionTest" method="test">
<result name="success">/success.jsp</result>
//result可以配置多个通过方法的返回值来决定后续操作也可以转向另一个action类也可以转向页面。
</action>


获取Servlet有关的类

public String test1(){
//获取四大域对象信息。
HttpServletRequest requet =  ServletActionContext.getRequest();
PageContext page = ServletActionContext.getPageContext();
HttpServletResponse response = ServletActionContext.getResponse();
HttpSession session = ServletActionContext.getRequest().getSession();
ServletContext context = ServletActionContext.getServletContext();
return SUCCESS;
}


自定义结果类型

//实现接口
public class ResultTest implements Result{

@Override
public void execute(ActionInvocation ai) throws Exception {
//功能写在这
System.out.println("这个方法内写你要实行的逻辑,当然是指execute这个方法");
}

}

//声明结果类型
<result-types>
<result-type name="captcha" class="com.test.action.ResultTest></result-type>
</result-types>
//使用结果类型
<action name="captcha">
<result name="success" type="captcha"></result>
</action>


封装请求参数

第一种方法就是讲请求对应的类作为模型对象,直接封装请求参数。
对应的类的字段和请求参数的name一致并提供get和set方法
第二种方法为动作类和模型对象分离。在动作类中提供模型对象的get和set方法。
框架会探测这个模型是否为空,如果为空,注入他的实例,分别调用该对象的属性,注入值。
第三种方法为(模型和动作分开)模型驱动:ModelDriven
动作类实现ModelDriven接口即可,在接口中设置模型对象通过名字为modelDriven拦截器完成的。
该拦截器会在调用动作方法前,调用getModel(),得到模型对象,
他接着把该模型对象压到了值栈的栈顶。表单的username的值,框架就会调用栈顶
4000
对象的setUsername方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts