web框架——struts2操作

来源:互联网 发布:js 移除class中的一个 编辑:程序博客网 时间:2024/06/07 20:44

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.jar3、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的值,框架就会调用栈顶对象的setUsername方法。
0 0
原创粉丝点击