Struts2 OGNL动态配置result(十八)

1.动态配置result
使用通配符动态配置result,<result>元素为{1}.jsp,这是根据URL参数来匹配的,如果根据Action中的属性名称来进行动态配置,那么就需要使用OGNL表达式
实例:


2.案例 :采用action中的persoName动态获取 结果页面
struts.xml
<package name="default" extends="struts-default">
		<!-- redirect resytype test -->
		<action name="test2" class="com.luob.action.DispatcherTest">
			<result type="redirect">/testSuccess.jsp</result>
		</action>
		
		<!-- ognl test -->
		<action name="ognlTest" class="com.luob.action.DispatcherTest">
			<result name="success">/${personName}.jsp</result>
		</action>
	</package>


action
package com.luob.action;

import com.opensymphony.xwork2.ActionSupport;

public class DispatcherTest extends ActionSupport {
  private String personName;
  private String personTelephone;
  private String personAddress;
  
  
  
	@Override
public String execute() throws Exception {
	// TODO Auto-generated method stub
	return SUCCESS;
}
	public String getPersonName() {
		return personName;
	}
	public void setPersonName(String personName) {
		this.personName = personName;
	}
	public String getPersonTelephone() {
		return personTelephone;
	}
	public void setPersonTelephone(String personTelephone) {
		this.personTelephone = personTelephone;
	}
	public String getPersonAddress() {
		return personAddress;
	}
	public void setPersonAddress(String personAddress) {
		this.personAddress = personAddress;
	}
  
  
}


OGNLTest.jsp
<body>
    您添加的联系人信息为:
    注意,输入的时候 如果在personName输入 admin 就返回到admin.jsp
     如果输入 aa 就返回的 aa.jsp
  <hr/>
  <s:form action="ognlTest" method="post" >
  <s:textfield name="personName" label="姓名"/>
  <s:textfield name="personTelephone"  label="电话"/>
  <s:textfield name="personAddress" label="地址"/>
  <s:submit value="提交"/>
  </s:form>
  </body>


admin.jsp
 <body>
    您添加的联系人信息为:admin.jsp
  <hr/>
	联系人姓名:<s:property value="personName"/>
 	联系人电话:<s:property value="personTelephone"/>
 	联系人地址:<s:property value="personAddress"/>
  </body>

你可能感兴趣的:(属性,Ognl,动态返回页面)