Struts

Struts全区配置

Struts.xml配置

<?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 name="day05" namespace="/" extends="struts-default">
        <action name="*_*" class="com.struts.pattern.{1}" method="{2}">
            <result name="{2}">
                /{1}/{2}.jsp
            </result>
        </action>
    </package>

</struts>

{1}:为类名

{2}:为方法名

Action代码

public class LoginAction07 extends ActionSupport {

    public String list(){
        return "list";
    }

    public String add(){
        return "add";
    }

}

映射JSP页面

文件夹为Action名,jsp为方法名

Struts result类型配置

type 类型 :(在struts2-core.jar/struts-default.xml中可以找到)

Type 类型值

作用说明

对应类

chain

用来处理Action 链

com.opensymphony.xwork2.ActionChainResult

dispatcher(默认值)

用来转向页面,通常处理 JSP

org.apache.struts2.dispatcher.ServletDispatcherResult

redirect

重定向到一个URL

org.apache.struts2.dispatcher.ServletRedirectResult

redirectAction

重定向到一个 Action

org.apache.struts2.dispatcher.ServletActionRedirectResult

plainText

显示源文件内容,如文件源码

org.apache.struts2.dispatcher.PlainTextResult

freemarker

处理 FreeMarker 模板

org.apache.struts2.views.freemarker.FreemarkerResult

httpheader

控制特殊 http 行为的结果类型

org.apache.struts2.dispatcher.HttpHeaderResult

stream

 

向浏览器发送 InputSream 对象,通常用来处理文件下载,还可用于返回 AJAX 数据。

 

org.apache.struts2.dispatcher.StreamResult

 

velocity

处理 Velocity 模板

org.apache.struts2.dispatcher.VelocityResult

xslt   

   处理 XML/XLST 模板

 org.apache.struts2.views.xslt.XSLTResult

 

默认为Dispatcher(转发)

<package name="day04" namespace="/" extends="struts-default">
        <action name="list" class="com.struts.action.LoginAction07">
            <result name="list">
                /04/list.jsp
            </result>
        </action>
    </package>

redirect(重定向)

<package name="day04" namespace="/" extends="struts-default">
        <action name="list" class="com.struts.action.LoginAction07">
            <result type="redirect" name="list">
                /04/list.jsp
            </result>
        </action>
    </package>

Chain(动作链跳转)从一个action发往另一个action

<package name="day06" namespace="/" extends="struts-default">

        <action name="add" class="com.struts.pattern.PatternAction02" method="add">
            <result name="add" type="chain">
                <param name="actionName">list</param>
                <param name="namespace">/</param>
            </result>
        </action>

        <action name="list" class="com.struts.pattern.PatternAction02" method="list">
            <result name="list">
                /PatternAction/list.jsp
            </result>
        </action>

    </package>

OGNL与值栈

OGNL:Object Graph Navigation Language  对象导航图语言

开源项目,取代页面中Java脚本,简化数据访问

EL同属于表达式语言,但功能更为强大

让我们通过简单一致的表达式语法来读取和设置Java对象的属性值,调用对象的方法,遍历整个对象的结构图,实现字段类型转换等功能。

OGNL在Struts2中的作用

     表达式语言

  将表单或Struts2标签与特定的java数据绑定起来,用来将数据移入、移出框架

 类型转换

  数据进入和流入框架,在页面数据的字符串类型和java数据类型之间进行转换

值栈与OGNL

值栈(ValueStack)

Struts 2框架创建的存储区域,具有栈的特点

Action的实例会被存放到值栈中

OGNL访问值栈

按照从上到下的顺序,靠近栈顶的同名属性会被读取

 

 

   

原文地址:https://www.cnblogs.com/javahenku/p/9974457.html