gpt4 book ai didi

java - JSF 和 Webflow - converting troubles

转载 作者:行者123 更新时间:2023-12-02 08:18:56 26 4
gpt4 key购买 nike

在 JSF 中,我有这个:

<h:selectManyListbox id="createAccountBasicInfo_select_Types"
styleClass="selectManyCheckbox" value="#{party.roles}" size="6"
converter="persistenceObjectToStringTwoWayConverter">
<f:selectItems value="#{accTypes.selectItems}" />
</h:selectManyListbox>

我的转换器:

 //[...]
import javax.faces.convert.Converter;
//[...]

public class PersistenceObjectToStringJSFConverter implements Converter {
//[...]

public Object getAsObject(FacesContext context, UIComponent component, String value) {
Long id = Long.valueOf(value);
Object object = null;
try {
object = getPersistenceService(context).loadByEntityId(id); // here I load the appropriate record
} catch (CoreException e) {
e.printStackTrace();
} catch (ElementCreationException e) {
e.printStackTrace();
}
return object; //here I need to return an ArrayList of the loaded Objects instead of a single object
}
}

在 HTML 中,我得到这个:

<select id="form_party:createAccountBasicInfo_select_Types"
name="form_party:createAccountBasicInfo_select_Types" class="selectManyCheckbox"
multiple="multiple" size="6">
<option value="171128">Andere</option>
<option value="171133">Interessent</option>
<option value="171130">Kunde</option>
<option value="171131">Lieferant</option>
<option value="171134">Mitarbeiter</option>
<option value="171132">Mitbewerber</option>
<option value="171129">Partner</option>
</select>

每个选项的值都是一个 Id,我必须从数据库加载它。然后,所选条目的 ArrayList 将被提供给 WebFlow,然后保存到数据库中。

当我按下“保存”按钮时,所选项目将通过转换器运行,我需要从数据库加载项目(按值,例如“171128”)并将其添加到 ArrayList,这将是插入“party.roles”(检查 JSF 代码)。

我的问题:我收到以下 JSF 异常:

/WEB-INF/page/core/fragments/account/accountBasicInfo.xhtml @152,58 value="#{party.roles}":属性“roles”在类型 java.util.List 上不可写

我认为我的转换器有问题。我需要改变什么?

感谢您的回答!

(我使用的是 JSF 1.2)

最佳答案

异常(exception)情况是 #{party}实际上是一个java.util.List反过来,它确实没有 setRoles()方法如此#{party.roles}不会起作用。

#{party}应该是一个托管 bean 并且它应该有一个 private List<Role> roles具有 setter/getter 的属性。转换器不应返回 List<Role>关于getAsObject()但它应该返回 Role .

关于java - JSF 和 Webflow - <h :selectManyListbox> converting troubles,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5832026/

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