Struts 2 param标签示例

下载它– Struts2-Param-Tag-Example.zip

Struts 2“ param ”标签用于参数化其他标签。 但是,当您声明“ param ”标签时,可以通过两种方式定义“ parameter value ”:

  1. ”属性。
  2. param ”标签的开始和结束之间的文本。

例如,

<param name="fruit">Banana</param>  {Case 1}
<param name="fruit" value="Banana"/> {Case 2}
在Struts 2中,两者的行为完全不同。 在“案例1”中,该值被视为java.lang.String对象; 在“情况2”中,该值被视为java.lang.Object对象。

上面的陈述最好用一些例子来说明:

例子1

通过“ param ”标签在bean属性中设置“ String ”值,您必须像这样声明

<s:bean name="com.mkyong.common.Person" var="personBean">
	<s:param name="nickName">mkyong</s:param>
</s:bean>
<s:bean name="com.mkyong.common.Person" var="personBean">
	<s:param name="nickName" value="mkyong"></s:param>
</s:bean>

如果您在“ value ”属性中声明了“ String ”值,Struts 2只会忽略它。

例子2

通过“ param ”标签将java.lang.Object对象设置为bean属性,声明如下

<s:bean name="com.mkyong.common.Fruit" var="fruitBean">
	<s:param name="fruitName">Banana</s:param>
</s:bean>

<s:bean name="com.mkyong.common.Person" var="personBean">
	<s:param name="favorFruit" value="#fruitBean"></s:param>
</s:bean>

例子3

对于原始类型,您可以在任何地方随意声明它,它就像一个魅力一样工作。

<s:bean name="com.mkyong.common.Person" var="personBean">
	<s:param name="age" value="99"></s:param>
</s:bean>
// or
<s:bean name="com.mkyong.common.Person" var="personBean">
	<s:param name="age">99</s:param>
</s:bean>

param ”标签不仅可用于bean标签,而且几乎适用于所有其他需要参数化的标签。

Struts 2的“ param ”标记是一个非常令人困惑的标记,许多新的Struts 2开发人员都陷入了这个愚蠢的陷阱,并且想知道为什么简单的“ String”设置方法无效。 希望Struts 2团队将来可以设计出更加用户友好的标签。

Struts 2 param标签示例

完整的Struts 2“ param ”标签示例。

1.行动

用来转发请求的Action类。

ParamTagAction.java

package com.mkyong.common.action;

import com.opensymphony.xwork2.ActionSupport;
 
public class ParamTagAction extends ActionSupport{
	
	public String execute() {
		return SUCCESS;
	}
	
}

2.豆

两个bean,稍后使用“ param ”标签进行初始化。

人.java

package com.mkyong.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();
	}
	
}

水果.java

package com.mkyong.common;

public class Fruit{
	
	private String fruitName;

	public String getFruitName() {
		return fruitName;
	}

	public void setFruitName(String fruitName) {
		this.fruitName = fruitName;
	}
	
}

3. param标签示例

一个JSP页面,显示“ param ”标记的用法。

param.jsp

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

<s:bean name="com.mkyong.common.Fruit" var="fruitBean">
	<s:param name="fruitName">Banana</s:param>
</s:bean>

<s:bean name="com.mkyong.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.mkyong.common.action.ParamTagAction" >
			<result name="success">pages/param.jsp</result>
		</action>
		
	</package>
</struts>

5.演示

http:// localhost:8080 / Struts2Example / paramTagAction.action

输出量

Struts 2 param tag example

参考

  1. Struts 2 Param标签文档

翻译自: https://mkyong.com/struts2/struts-2-param-tag-example/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值