Struts_2

一 Struts1:

缺点:
Struts1与Servlet API的严重耦合,难于测试。
Struts1代码严重依赖于Struts1 API,属于侵入性框架。

二 Struts2:

传统的Struts1的基础上,融合了另外的一个优秀的Web框架WebWork的Struts2。

① 创建传统web项目,默认配置了本机tomcat

② WEB-INF下创建classes,lib文件夹,并将他们的功能路径在项目中配好。

classes:

用于存放项目生成的 xxxx.class 文件;

lib:

将Struts2需要的jar包导入其中

③ web.xml中配置好filter(拦截器):

<!--本质是filter过滤器-->
<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<!--拦截所有“/XXXX”请求-->
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

④ src目录下创建struts.xml:

IDEA提示检测到struts2框架

<?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相关-->
<!--package固定写法,名字默认,/识别,继承默认设置-->
<!--获取动作“index”,返回index.jsp页面-->
<struts>
    <package name="default" namespace="/" extends="struts-default">
        <action name="index">
            <result>index.jsp</result>
        </action>
    </package>
</struts>

⑤进入loclhost:8080


⑦struts.xml配置跳转

    //<package>中配置动作标签<action>需要name,class,*method*
    //结果集<result>中name用于接收show方法返回的参数return show;
    <action name="showProduct" class="com.wr.struts_2demo.action.ProductAction" method="show">
        <result name="show">show.jsp</result>
    </action>

⑧show.jsp网页解析

${}EL表达式:

Struts通过getProudct()方法返回product对象,然后再把product对象通过request.setAttribute("product", product) 放在"product" 这个key上,这样就方便EL表达式去取出来了

⑨sumbit.jsp网页解析

input标签中 name属性 的区别

submit后后台得到的数据不同

Ⅰ name="product.namess"

后台得到的是一个对象product及它一个namess属性的值

Ⅱ name="namess"

后台接受的是变量namess的值,用getparameter接收

⑧中文乱码问题

jsp提交数据的时候,必须是UTF-8编码的
struts拿到数据后进行UTF-8解码
服务端跳转到jsp进行显示的时候,要指定浏览器使用UTF-8进行显示
UTF-8可以换成GBK或者GB2312,但是必须统一,不能混用

添加字符编码

更改提交方式为post

更改struts.xml

猜你喜欢

转载自www.cnblogs.com/samsaramax/p/10100715.html