web框架——struts2操作

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的值,框架就会调用栈顶对象的setUsername方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值