Www.helper3.com
热门关键字: php net javascript java
Struts2基础 专题
专题目录
您的位置:java > Struts2基础专题 > Struts2 <s:param>标签示例
Struts2 <s:param>标签示例
作者:--    发布时间:2019-11-20 10:17:20
struts2 <s:param>标签被用来参数化其他标签。 但是,当称明<s:param>标签,“参数值”可以有两种定义方式:


  1. “value” 属性
  2. param标签的开始和结束之间的文本
例如,
<param name="fruit">banana</param>  {case 1}
<param name="fruit" value="banana"/> {case 2} 
在struts2中,都是表现一个完全不同的意义。 在“case 1”中, 值被认为是一个java.lang.string对象; 而在“case 2”中, 值被认为是一个 java.lang.object 对象。
上述声明用一些例子很好地说明:

示例1

通过“param”标签设置“字符串”值转换到 bean属性,必须这样声明
<s:bean name="com.h3.common.person" var="personbean">
	<s:param name="nickname">h3</s:param>
</s:bean>
而不是
<s:bean name="com.h3.common.person" var="personbean">
	<s:param name="nickname" value="h3"></s:param>
</s:bean>
如果你声明“字符串”的值在“value”属性中,struts2 会忽略它。

示例2

通过<s:param>标签设置 java.lang.object 对象转换成 bean 属性,这样声明
<s:bean name="com.h3.common.fruit" var="fruitbean">
	<s:param name="fruitname">banana</s:param>
</s:bean>

<s:bean name="com.h3.common.person" var="personbean">
	<s:param name="favorfruit" value="#fruitbean"></s:param>
</s:bean>

示例3

对于基本类型,可以自由地在任何位置声明它。
<s:bean name="com.h3.common.person" var="personbean">
	<s:param name="age" value="99"></s:param>
</s:bean>
// or
<s:bean name="com.h3.common.person" var="personbean">
	<s:param name="age">99</s:param>
</s:bean> 
<s:param>标签不仅是可用于bean标签,它几乎适用于所有需要参数化的标签。
在struts 2,<s:param>标签是一个非常混乱的标签,许多新的struts2开发人员都可能会掉进这个陷阱,但不知道为什么一个简单的“字符串”的setter方法是不行的。希望 struts2 的团队能够在今后设计更加人性化的标签。

struts2 <s:param>标签示例

一个完整的struts2 <s:param>标签的例子。

1. 动作

action类转发请求。

paramtagaction.java

package com.h3.common.action;

import com.opensymphony.xwork2.actionsupport;
 
public class paramtagaction extends actionsupport{
	
	public string execute() {
		return success;
	}
	
}

2. bean

两个bean对象初始化在“param”标签之后。

person.java

package com.h3.common;

public class person{
	
	private string nickname;
	private int age;
	private fruit favorfruit;
	
	public string getnickname() {
		return nickname;
	}
	public void setnickname(string nickname) {
		this.nickname = nickname;
	}
	public int getage() {
		return age;
	}
	public void setage(int age) {
		this.age = age;
	}
	public fruit getfavorfruit() {
		return favorfruit;
	}
	public void setfavorfruit(fruit favorfruit) {
		this.favorfruit = favorfruit;
	}
	
	public string getfruitname(){
		return this.favorfruit.getfruitname();
	}
	
}

fruit.java

package com.h3.common;

public class fruit{
	
	private string fruitname;

	public string getfruitname() {
		return fruitname;
	}

	public void setfruitname(string fruitname) {
		this.fruitname = fruitname;
	}
	
}

3. <s:param>标签示例

jsp页面显示如何使用<s:param>标签。

param.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>
 <html>
<head>
</head>
 
<body>
<h1>struts 2 param tag example</h1>

<s:bean name="com.h3.common.fruit" var="fruitbean">
	<s:param name="fruitname">banana</s:param>
</s:bean>

<s:bean name="com.h3.common.person" var="personbean">
	<s:param name="nickname">ah pig ah dog</s:param>
	<s:param name="age">99</s:param>
	<s:param name="favorfruit" value="#fruitbean"></s:param>
</s:bean>

<h2>personbean</h2>
<ol>
<li>nickname property : <s:property value="#personbean.nickname" /></li>
<li>age property : <s:property value="#personbean.age" /></li>
<li>fruit property : <s:property value="#personbean.fruitname" /></li>
</ol>
</body>
</html>

4. struts.xml

<?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>
 	<constant name="struts.devmode" value="true" />
	<package name="default" namespace="/" extends="struts-default">
	
		<action name="paramtagaction" 
			class="com.h3.common.action.paramtagaction" >
			<result name="success">pages/param.jsp</result>
		</action>
		
	</package>
</struts>

5. 示例

http://localhost:8080/struts2paramtag/paramtagaction.action

在浏览中打上面的网址,访问后显示结果如下:

参考

  1. struts2 <s:param>标签文档



滚动到顶部 滚动到底部
网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
QQ群:570078429
网站备案号:
粤ICP备17073857号