gpt4 book ai didi

java - JSF 2 中使用 Ajax 调用根据请求参数更新部件时出错

转载 作者:太空宇宙 更新时间:2023-11-04 08:32:58 27 4
gpt4 key购买 nike

我对 JSF 很陌生2. 我尝试根据用户选择的复选框使用 Ajax 渲染组件。例如,选中框 1、框 2 和框 3。

每当选择复选框时,我都会遇到一些错误。

错误消息:

serverError: class javax.faces.component.UpdateModelException/ajaxcall.xhtml@27,
54 value="#{bean.panels}": Property 'panels' not writable on type java.util.List

下面是我的 XHTML 代码。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
>
<h:head><title>JSF 2.0: Blank Starting-Point Project</title>
</h:head>

<h:body>
<h:panelGroup id="panels">
<h:panelGroup rendered="#{bean.panels.contains('u1')}">
panel one
</h:panelGroup>
<h:panelGroup rendered="#{bean.panels.contains('u2')}">
panel two
</h:panelGroup>
<h:panelGroup rendered="#{bean.panels.contains('u3')}">
panel three
</h:panelGroup>
</h:panelGroup>

<h:form>
<h:selectManyCheckbox value="#{bean.panels}">
<f:selectItem itemValue="u1" />
<f:selectItem itemValue="u2" />
<f:selectItem itemValue="u3" />
<f:ajax render=":panels" />
</h:selectManyCheckbox>
</h:form>
</h:body>
</html>

这是我的 bean :

package somePackage;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean
@RequestScoped
public class Bean {
private List<String> panels = new ArrayList<String>();

public List<String> getPanels() {
return panels;
}
}

我错过了什么吗?

最佳答案

该错误有点误导,但您还需要一个 setter 。

public void setPanels(List<String> panels) {
this.panels = panels;
}

关于java - JSF 2 中使用 Ajax 调用根据请求参数更新部件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7082424/

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