论坛首页 Java版 Webwork

webwork ui tag

浏览 1989 次
锁定老贴子 主题:webwork ui tag
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2007-02-23
1. 在jsp中实现
<a href="test.action?id=<ww:property value="id"/>" target="_blank"><ww:property value="name"/></a>

我写成
<ww:a href="test.action?id=%{id}" target="_blank"><ww:property value="name"/></ww:a>

提示 target 无效

2. 在jsp中实现
<select name="<ww:property value="name"/>" dataType="Require" msg="please select">
<ww:iterator value="items">
    <option value="<ww:property value="id"/>" 
        <ww:if test="id==[1].selectedId"> selected="selected"</ww:if>
    ><ww:property value="name"/></option>
</ww:iterator>
</select>

我写成
<ww:select name="%{name}" id="%{name}" list="items" listKey="id" listValue="name" selected="%{selectedId}" theme="simple" dataType="Require" msg="please select" />

提示 selected, dataType, msg 无效

我查了一下 tag 说明和 tag 对应的源码,确实没有上述几个属性,请问用 ww tag 有何办法实现上述效果?
   
时间:2007-02-23
问题未解决,上来顶一下,希望高手
   
0 请登录后投票
时间:2007-02-24
(1) <ww:url id="herfid" value="test.action" namespace="">
<ww:param name="id" value="<ww:property value="id"/>"/>
</ww:url>

<ww:a href="%{herfid}" target="_blank"><ww:property value="name"/></ww:a>


(2)
<ww:select label="请选择"
name="选择框1"
list="items"
listKey="id"
listValue="name"
value="selectedId"
required="true"
theme="simple"
tooltip="please select"
/>
   
0 请登录后投票
时间:2007-02-24
sprite 写道
(1) <ww:url id="herfid" value="test.action" namespace="">
<ww:param name="id" value="<ww:property value="id"/>"/>
</ww:url>

<ww:a href="%{herfid}" target="_blank"><ww:property value="name"/></ww:a>


(2)
<ww:select label="请选择"
name="选择框1"
list="items"
listKey="id"
listValue="name"
value="selectedId"
required="true"
theme="simple"
tooltip="please select"
/>


多谢楼上的帮助, 不过您写的这两个 没什么效果

第一个 说 target 无效
第二个 在 生成的 <select 里面并没有 dataType="Require" msg="please select" , 同时也没有出现 selected="selected"
   
0 请登录后投票
时间:2007-02-24
问题已解决
1.
1) 新建 com.webwork.tag.AnchorTag 和 com.webwork.tag.components.Anchor

package com.webwork.tag;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.webwork.tag.components.Anchor;
import com.opensymphony.webwork.components.Component;
import com.opensymphony.xwork.util.OgnlValueStack;

public class AnchorTag extends com.opensymphony.webwork.views.jsp.ui.AnchorTag {
	protected String target;

	public Component getBean(OgnlValueStack stack, HttpServletRequest req,
			HttpServletResponse res) {
		return new Anchor(stack, req, res);
	}

	protected void populateParams() {
		super.populateParams();

		Anchor link = (Anchor) component;

		link.setTarget(target);
	}

	public String getTarget() {
		return target;
	}

	public void setTarget(String target) {
		this.target = target;
	}

}



package com.webwork.tag.components;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.opensymphony.xwork.util.OgnlValueStack;

public class Anchor extends com.opensymphony.webwork.components.Anchor {
	protected String target;

	public Anchor(OgnlValueStack stack, HttpServletRequest request,
			HttpServletResponse response) {
		super(stack, request, response);
	}

	public void evaluateExtraParams() {
		super.evaluateExtraParams();

		if (target != null) {
			addParameter("target", findString(target));
		}
	}

	public String getTarget() {
		return target;
	}

	public void setTarget(String target) {
		this.target = target;
	}
}

2) /template/simple/a.flt 增加
<#if parameters.target?exists>
target="${parameters.target?html}"<#rt/>
</#if>
3) webwork-taglib.tld 中找到 <name>a</name> 的位置,对应的
<tag-class>com.opensymphony.webwork.views.jsp.ui.AnchorTag</tag-class>
修改成
<tag-class>com.lincee.framework.webwork.tag.AnchorTag</tag-class>
下面增加
<attribute>
<name>target</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>

<description><![CDATA[anchor target]]></description>

</attribute>



经过修改之后,运行
<ww:a href="test.action?id=%{id}" target="_blank"><ww:property value="name"/></ww:a>
结果编译后为
<a href="test.action?id=1" target="_blank">test_name</a>

2. 关于 <ww:select 的,,用上述同样方法,即可增加属性 dataType, msg
   
0 请登录后投票
时间:2007-02-24
select中的selected效果可以通过设置value=%{selectedId},但要注意保持类型的一致;msg效果可以用headerKey和headerValve属性实现,请查阅ui标签的文档。
   
0 请登录后投票
时间:2007-02-25
monkito 写道
select中的selected效果可以通过设置value=%{selectedId},但要注意保持类型的一致;msg效果可以用headerKey和headerValve属性实现,请查阅ui标签的文档。


headerKey,headerValue的意思我知道,但是我的msg不是说在select第一行添加内容,
而是当js验证dataType未通过时提示警告的文字
上面的 dataType="Require" msg="please select" 的意思就是用户提交时 如果此select未被选择,则给出提示 "please select", 提示用户选择。
此验证为js,故必须要生成如 <select dataType="Require" msg="...." 的形式才可以被js捕获。
此属性为自定义属性,而 ww 的 SelectTag 本身无此属性,故需对其扩展。
   
0 请登录后投票
时间:2007-02-25
哦 明白了。
   
0 请登录后投票
论坛首页 Java版 Webwork

跳转论坛:
JavaEye推荐