Struts2框架-----(一)

1,Struts2框架介绍
Struts2框架是MVC流程框架,适合分层开发。框架应用实现不依赖于Servlet,使用大量的拦截器来处理用户请求,属于无侵入式的设计。能够处理前端页面的相关操作(如:接受参数,跳转页面等),类似于与Servelet。
2.如何使用Struts2框架
1)导入相关的Jar包
commons-fileupload-1.2.1.jar —–>文件的上传
commons-io-1.3.2.jar—–>文件的上传
freemarker-2.3.15.jar—–>视图展现技术
ognl-2.7.3.jar—–>对象图形导航语言,用于做数据操作
struts2-core-2.1.8.1.jar—–>框架的核心jar包
xwork-core-2.1.9.jar—–>WebWork框架的核心包
2)配置web.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>  <!-- 指定过滤路径,*三种写法:*.doction  *.do  /-->
</filter-mapping>  

3)配置struts.xml文件
将拷贝的配置文件放在根目录src下。struts.xml文件主要是配置请求路径对应action类的,以及结果跳转路劲。

<?xml version="1.0" encoding="UTF-8" ?>    <!--声明版本 和编码格式-->
<!DOCTYPE struts PUBLIC  
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
    "http://struts.apache.org/dtds/struts-2.0.dtd">  
<struts>  
<!-- package配置包:包名、继承自struts-default、默认的所在空间 -->
    <package name="example" namespace="/example" extends="struts-default">
    <!-- action配置Action类   name属性指定action的访问路径    class指定配置的action类-->  
        <action name="HelloWorld" class="struts2.action.HelloWorldAction">  
           <!-- result配置跳转:根据方法的返回值,实现跳转
                 name指定方法的返回值     
                 type指定跳转方式:请求转发(默认)/重定向type="redirectAction"
                 默认处理的是success方法
             -->
            <result name="success">/success.jsp</result>  
        </action>  
        <!-- 通配符访问指定的方法     method属性指代要访问的方法,由*号决定,也就是你前面调用acction类的方法-->
        <action name="demo02_*" class="com.zuxia.action.Demo02Action" method="{1}">
            <!-- 跳转到其它页面 -->
            <result name="add">/ok.jsp</result>
            <result name="update">/ok.jsp</result>
            <!-- 跳转到其它action -->
            <result name="query" type="redirectAction">other!test</result>
        </action>
        <action name="other" class="com.zuxia.action.OtherAction">
            <result name="t">/ok.jsp</result>
        </action></package>      
</struts> 

4)acction类中的写法
Action(动作、功能)——代表一个具体的业务功能(如:登录Action、添加Action等)

package com.cy.action;

import com.opensymphony.xwork2.ActionSupport;

public class Demo01Action extends ActionSupport {
    //action类默认执行的方法 execute()
    @Override
    public String execute() throws Exception {
        System.out.println("访问了action........");
        return "success";
    }
    public String add(){
        System.out.println("add..............");
        return "add";
    }
    public String update(){
        System.out.println("update..............");
        return "update";
    }
}

注释:Action类中方法返回的String字符串,去匹配result标签中的name值,进行跳转。
Struts2框架中的Action类是一个单独的javabean对象。不像Struts1中还要去继承HttpServlet,耦合度减小了
5)界面的调用

<body>
        <%--访问action的默认方法 --%>   <!--地址写:在 struts.xml中配置的action配置Action类的name属性-->
       <a href="demo01">访问action</a>
        <%--方法action中指定的方法 --%>
       <a href="demo01!add">访问action的add方法</a><br /><br />
       <a href="demo01!update">访问action的update方法</a><br /><br />

       <%--使用通配符访问指定的方法 --%>
       <a href="demo02_add">访问action的add方法</a><br /><br />
       <a href="demo02_update">访问action的update方法</a><br /><br />

       <%--访问其他action --%>
       <a href="demo02_query">访问demo02Action,再访问otheraction</a>

  </body>
发布了23 篇原创文章 · 获赞 23 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/xiaojiang_520/article/details/52404933