动态匹配结果
动态匹配结果就是通过模式匹配的方式来匹配,关于这一点可以参见这篇《Struts2学习之Action的通配符使用》文章。在这篇文章中已经对这一点进行了详细的总结,这里就不再累述了。
Action属性值定位结果
在配置
${属性名.属性名}
关于使用Action属性值的代码示例请参见这篇《Struts2学习之结果类型总结》文章中redirectAction结果类型详解这小节。其中传递参数时,就使用了${属性名}这种方式来获取Action中的属性值。
1.动态结果。
有时我们需要在Action里取得我个要转跳的页面
看一下我们的struts.xml
代码如下
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
很简单只是把result里用${value}取代了具体和页面,那看一下我们的
action是怎么写的
代码如下package com.pengli.struts.parampack;
import com.opensymphony.xwork2.ActionSupport;
public class MyActionOne extends ActionSupport{
private String strType;
private String myValue;
public String Def()
{
if(strType!=null&&strType.equals("a"))
{
setValue("/NewJsp.jsp");
}
else
{
setValue("/Errors.jsp");
}
return SUCCESS;
}
public String getType() {
return strType;
}
public void setType(String type) {
this.strType = type;
}
public String getValue() {
return myValue;
}
public void setValue(String value) {
this.myValue = value;
}
}
这是根据type给value赋值,转跳到相应的页面上
http://localhost:8080/Struts16ActionResultsDemo/abc/mya?type=a
正常页面
赋一个别的值
2.带参数的跳转
我们知道redirect形式的转跳是共享值栈的,我们上边说的是&{value}取的是一个整体页面,我们也可以用它来保存和提取参数
这里我们是基于1修改的代码
看一下structs.xml
代码如下
再看一下Action
代码如下public String Defb()
{
if(strType!=null)
{
myValue=String.valueOf(Integer.parseInt(strType)+1);
}
return SUCCESS;
}
再看一下jsp页面,因为xml里是直接轩跳的,没有经过Action
所以NewJsp.jsp?v=${type}取v的值时要这么取
代码如下
This is my JSP page.
parameters v
动态结果跳转
struts.xml
代码如下"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
UserAction.java
代码如下package com.pegasus.web;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
private int type;
private String r;
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getR() {
return r;
}
public void setR(String r) {
this.r = r;
}
public String execute() {
System.out.println("type:" + type);
//在这里定义要跳转的页面的地址
if (type == 1)
r = "/user_success.jsp";
else if (type == 2)
r = "/user_error.jsp";
return "success";
}
}
总结
这篇文章虽然很短,但是理不糙,还是需要认真的看一看的,没准儿哪天就能用上呢,是吧。
http://m.bbyears.com/flash/105189.html
推荐访问:struts2工作原理 struts2面试题 struts2框架