gpt4 book ai didi

java - 数据表中的 Richfaces inplaceInput 不更新支持 bean 中的值

转载 作者:行者123 更新时间:2023-12-01 04:19:21 26 4
gpt4 key购买 nike

我正在尝试在 rich:dataTable 中使用 rich:inplaceInput 实现可编辑行。这里的问题是编辑后的值没有反射(reflect)在支持 bean 中。

<rich:column width="200px">
<f:facet name="header">
<h:outputText value="Roles" />
</f:facet>

<rich:inplaceInput id="roleText" value="#{role}" inputWidth="60px" controlsHorizontalPosition="right"
showControls="true" editEvent="none">
<f:facet name="controls">
<h:panelGroup>
<h:commandButton id="saveEdit" value="Save"
action="#{manageRolesBean.editRoleAction}"
image="/images/indicator_accept.gif" alt="Save" />

<h:commandButton id="cancelEdit" value="Cancel"
onclick="#{rich:component('rolesForm:roleText')}.cancel(); return false;"
image="/images/indicator_reject.gif" alt="Cancel" />
</h:panelGroup>
</f:facet>
</rich:inplaceInput>
</rich:column>

单击“保存”按钮,在支持 bean 中给出一个空字符串。我尝试使用 a4j:actionParam 从客户端读取值,但这也不起作用:

<a4j:actionparam name="editedValue" value="#{rich:findComponent('roleText').value}" assignTo="#{manageRolesBean.role.name}" />

我仅限于 JSF 1.2 和 RichFaces 3.3.X。解决方案描述here引用较新的版本。如何将编辑后的值保存在支持 bean 中?

最佳答案

我在下面的代码中使用 Seam 组件作为支持 bean 和值更改监听器。希望这会有所帮助。

<h:form>   
...
<rich:column ...>
<rich:inplaceInput id="someString" value="#{someSeamComponent.someString}"
valueChangeListener="#{someSeamComponent.process}">
<a:support event="onviewactivated"/>
</rich:inplaceInput>
</rich:column>
...
</h:form>

import org.jboss.seam.annotations.Name;
import javax.faces.event.ValueChangeEvent;

@Name("someSeamComponent")
public class SomeSeamComponent {
private String someString;

// getters and setters

public void process(ValueChangeEvent event) {
// event.getSource().getId() -> to distinguish the source. you may construct id using rowKeyVar or smth
Object newVal = event.getNewValue();
}
}

提示:setter 也为 someString 触发器提供了新值。

关于java - 数据表中的 Richfaces inplaceInput 不更新支持 bean 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19113515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com