JiveJdon Community Forums
在线60人   首页   主题总表   培训咨询   精华   查搜   注册    登陆
首页 » 论坛 » J2EE/JavaEE/JEE/EJB/JSF等技术讨论
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 7 回复 / 1
 发表新帖子   回复该主题贴
xuvin

悄悄话
发表文章: 12
注册时间: 2005年11月09日 10:22
JSF selectOneRadio 问题 急!!! 2005年12月06日 15:55 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表
我想把selectOneRadio放到dataTable的一列里,dataTable的每一行代表数据库一条记录,选择其中的一行后我希望程序能得到这行的Id,也就是Radio Checked 的那一条。
lijinlinlin

悄悄话
发表文章: 70
注册时间: 2003年10月15日 13:52
Re: JSF selectOneRadio 问题 急!!! 2005年12月06日 22:31 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
看了你的帖子,按照自己的理解做了一下,没有成功。原因是:使用

<h:selectOneRadio/>

这个标签时,在实际的页面输出时,被包含在了

<table>

中,并且这个table是有一个由JSF自动生成的ID的,所以在表格这一列上的这些单选按钮并不能成为一组单选按钮,而是可以全部选择的,这点你可以做个例子,然后看下输出页面的源代码就清楚了。

至于得到这行的ID,如果使用DATATABLE的话就比较容易了,

(DTO)DataModel.getRowData().getId();


而如果说为了达到你要的页面效果的话,我觉得使用JSTL可以达到目的。

个人认为:虽然JSF提供的页面标签很方便清晰,但针对页面的灵活布局上还是不够的,不过是可以通过JSTL等方式进行补充的,而且在官方资料上也是推荐两者互补的。

最后提一点个人的建议:
有些时候面对复杂的页面,如没有特殊要求的情况下,是否可以考虑以其他页面的呈现方式来简化页面,比如把一个复杂页面分成几个页面(几个步骤)来达到同样的功能,这样做很明显的一点可以提高页面的可维护性。像你说的这个例子,如果变换一下,可能就不用JSTL标签,用JSF的就能解决了。

:-) 见笑了!!!
xuvin

悄悄话
发表文章: 12
注册时间: 2005年11月09日 10:22
Re: JSF selectOneRadio 问题 急!!! 2005年12月07日 09:57 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
谢谢lijinlinlin
但是你说的不能单选,我这里并没有发生,虽然他们被包含在table里,但是没有生成ID,可以单选,我的代码:
<h:column>
<f:facet name="header"> <h:outputTextvalue="selected" />
</f:facet>
<h:selectOneRadio value="#{conference.id}">
<f:selectItem itemValue="#{queryList.id}"/>
</h:selectOneRadio>
</h:column>
<h:selectOneRadio value="#{conference.id}">中的conference.id为formbean的一个变量
<f:selectItem itemValue="#{queryList.id}"/>中的queryList.id为每条记录的id
我的想法是点击每行的纪录能把queryList.id传给conference.id,现在的问题是当我要执行操作的时候抛出错误
Validation Error: {0}Value is not valid

还有你说的(DTO)DataModel.getRowData().getId();能具体一点吗,我对JSF还不是很熟悉。
xuvin

悄悄话
发表文章: 12
注册时间: 2005年11月09日 10:22
Re: JSF selectOneRadio 问题 急!!! 2005年12月07日 10:02 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
谢谢lijinlinlin
但是你说的不能单选,我这里并没有发生,虽然他们被包含在table里,但是没有生成ID,可以单选,我的代码:

<h:column>
<f:facet name="header">
<h:outputText value=
"selected" />
</f:facet>
<h:selectOneRadio value=
"#{conference.id}">
<f:selectItem itemValue=
"#{queryList.id}"/>
</h:selectOneRadio>
</h:column>

<h:selectOneRadio value="#{conference.id}">
中的conference.id为formbean的一个变量
<f:selectItem itemValue="#{queryList.id}"/>
中的queryList.id为每条记录的id
我的想法是点击每行的纪录能把queryList.id传给conference.id,现在的问题是当我要执行操作的时候抛出错误
Validation Error: {0}Value is not valid

还有你说的(DTO)DataModel.getRowData().getId();能具体一点吗,我对JSF还不是很熟悉。
lijinlinlin

悄悄话
发表文章: 70
注册时间: 2003年10月15日 13:52
Re: JSF selectOneRadio 问题 急!!! 2005年12月08日 02:12 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
不客气,大家互相交流学习哈!!!

首先,不知你想达到的效果是否大概如下图所示:


在此图中,我仍未达到单选的目的,TABLE标签里面已没有自动生成的ID了,可selectOneRadio的ID仍不一致,这个暂且不提,如有可能可否网上提供一下你软件的DEMO,学习一下是如何实现单选的。

再来说说

(DTO)DataModel.getRowData().getId();

我用DATATABLE时,一般如下写代码:

其中

value="#{goodsHandler.sortedDataModel}"

返回的就是JSF中的DataModel对象,DataModel对象里面实际就是把List对象封装了一下,以便提供一些方便的功能;这样当我要操作一条记录时,比如点击某条记录后面的“更新”按钮时,在调用的JAVABEAN里面只要写入代码

DTO dto = (DTO)DataModel.getRowData();

就可以得到这条记录的DTO对象,而不用再去通过复杂的代码或查询一次数据库了。

从你提供的错误代码:Validation Error: {0}Value is not valid,我觉得这类错误可能是由于如:字符串“ABC”想要赋给一个INT型变量等这类错误所致。建议你检查一下BEAN的数据类型,然后和运行时的数据类型对照一下,看是否一致。

最后一点,你的想法是“点击每行的纪录能把queryList.id传给conference.id”,这个应该实现不了,因为必须提交数据(即:提交表单)后,才能为BEAN赋值(这个不像JAVASCRIPT),而<h:selectOneRadio>又没有提供如“ACTION”这样的属性。所以应该借助其他方法,如:当点击时,利用JAVASCRIPT提交表单。

再有你指的“当我要执行操作的时候抛出错误”,能具体一些吗??
xuvin

悄悄话
发表文章: 12
注册时间: 2005年11月09日 10:22
Re: JSF selectOneRadio 问题 急!!! 2005年12月08日 17:15 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
Radio ID的问题是标签引起的 我用了新的标签

<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>

最后我用回h标签,问题还是没解决,我用selectBooleanCheckbox代替了selectOneRadio。先用着吧,希望谁能解决。
谢了lijinlinlin
lijinlinlin

悄悄话
发表文章: 70
注册时间: 2003年10月15日 13:52
Re: JSF selectOneRadio 问题 急!!! 2005年12月08日 19:42 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
太客气了,

互相交流才能一起进步嘛!!!
diven_net

悄悄话
发表文章: 9
注册时间: 2005年12月12日 19:07
Re: JSF selectOneRadio 问题 急!!! 2005年12月12日 19:23 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
楼上几位大哥,能否加小弟**:113281070
有许多问题需要向前辈请教
这个主题有 7 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com
anti spam