Jsf 更新primefaces中的Datalist值
我正在使用primefaces datalist,它包含与之绑定的列表,,datalist包含单选按钮我想更改/更新绑定列表的值我尝试了此代码,但它不起作用Jsf 更新primefaces中的Datalist值,jsf,primefaces,Jsf,Primefaces,我正在使用primefaces datalist,它包含与之绑定的列表,,datalist包含单选按钮我想更改/更新绑定列表的值我尝试了此代码,但它不起作用 <p:dataList var="question" value="#{formTableBean.question}" type="definition" > <h:outputText value="#{question.text}"
<p:dataList var="question" value="#{formTableBean.question}"
type="definition" >
<h:outputText value="#{question.text}"
style="font-size:14px;font-weight:bold" />
<h:panelGrid columns="2" width="100%" style="margin-bottom:10px"
cellpadding="10">
<h:outputText value="Options: " />
<p:selectOneRadio id="options" value="#{question.answer}" >
<f:selectItem itemLabel="Strongly Agree" itemValue="1" />
<f:selectItem style="margin-right:20px" itemLabel="Agree"
itemValue="2" />
<f:selectItem style="margin-right:20px" itemLabel="Disagree"
itemValue="3" />
<f:selectItem itemLabel="Strongly Disagree" itemValue="4" />
<p:spacer width="100"></p:spacer>
</p:selectOneRadio>
</h:panelGrid>
</p:dataList>
bean类包bean
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import com.liferay.portal.model.User;
import com.liferay.portal.service.UserLocalServiceUtil;
import DAO.Dao;
import DTO.FormDTO;
import DTO.QuestionDTO;
@ManagedBean
@ViewScoped
public class FormTableBean {
FormDTO selectedForm;
List<QuestionDTO> question;
public List<QuestionDTO> getQuestion() {
return question;
}
public void setQuestion(List<QuestionDTO> question) {
this.question = question;
}
public FormDTO getSelectedForm() {
return selectedForm;
}
public void setSelectedForm(FormDTO selectedForm) {
this.selectedForm = selectedForm;
}
boolean renderFormPanal = false;
public boolean getRenderFormPanal() {
return renderFormPanal;
}
public void setRenderFormPanal(boolean renderFormPanal) {
this.renderFormPanal = renderFormPanal;
}
List<FormDTO> formList;
public List<FormDTO> getFormList() {
return formList;
}
public void setFormList(List<FormDTO> formList) {
this.formList = formList;
}
Dao daoclass = new Dao();
public FormTableBean() {
User u = getCurrentUser();
String email = u.getEmailAddress();
int eid = daoclass.emailToEid(email);
formList = new ArrayList<FormDTO>();
formList = daoclass.getAllForm(eid);
}
protected User getCurrentUser() {
User u = null;
FacesContext fc = FacesContext.getCurrentInstance();
ExternalContext externalContext = fc.getExternalContext();
Long id = Long.parseLong(externalContext.getUserPrincipal().getName());
try {
u = UserLocalServiceUtil.getUserById(id);
} catch (com.liferay.portal.kernel.exception.PortalException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (com.liferay.portal.kernel.exception.SystemException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return u;
}
public void showForm() {
question = new ArrayList<QuestionDTO>();
setRenderFormPanal(true);
int formid = selectedForm.getFid();
question = daoclass.getQuestion(formid);
}
public void saveForm() {
for (int i = 0; i < question.size(); i++) {
System.out.print("QID:"+question.get(i).getAnswer());
}
}
}
import java.util.ArrayList;
导入java.util.List;
导入javax.faces.bean.ManagedBean;
导入javax.faces.bean.SessionScoped;
导入javax.faces.bean.ViewScoped;
导入javax.faces.context.ExternalContext;
导入javax.faces.context.FacesContext;
导入com.liferay.portal.model.User;
导入com.liferay.portal.service.UserLocalServiceUtil;
导入DAO.DAO;
导入DTO.FormDTO;
导入DTO.QuestionDTO;
@ManagedBean
@视域
公共类FormTableBean{
formd到selectedForm;
列表问题;
公共列表getQuestion(){
返回问题;
}
公共问题(列表问题){
这个问题=问题;
}
公共表单到getSelectedForm(){
返回所选表格;
}
公共作废设置selectedForm(Formd到selectedForm){
this.selectedForm=selectedForm;
}
布尔renderformpalal=false;
公共布尔getRenderFormPanal(){
返回renderFormPanal;
}
public void setRenderFormPanal(布尔renderFormPanal){
this.renderFormPanal=renderFormPanal;
}
列表格式列表;
公共列表getFormList(){
返回表单列表;
}
公共作废集合表单列表(列表表单列表){
this.formList=formList;
}
Dao类=新Dao();
公共FormTableBean(){
用户u=getCurrentUser();
字符串email=u.getEmailAddress();
int-eid=daoclass.emailToEid(电子邮件);
formList=新的ArrayList();
formList=daoclass.getAllForm(eid);
}
受保护的用户getCurrentUser(){
用户u=null;
FacesContext fc=FacesContext.getCurrentInstance();
ExternalContext ExternalContext=fc.getExternalContext();
Long id=Long.parseLong(externalContext.getUserPrincipal().getName());
试一试{
u=UserLocalServiceUtil.getUserById(id);
}catch(com.liferay.portal.kernel.exception.PortalException){
//TODO自动生成的捕捉块
e、 printStackTrace();
}catch(com.liferay.portal.kernel.exception.SystemException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回u;
}
公开表格({
问题=新的ArrayList();
SetRenderForPanal(真);
int formid=selectedForm.getFid();
question=daoclass.getQuestion(formid);
}
公共void存储格式(){
对于(int i=0;i
我想更新列表中的答案值。请帮助我在
p:selectOneRadio
上使用Ajax提交用户每次选择答案时的答案
<p:selectOneRadio id="options" value="#{question.answer}" >
<p:ajax event="valueChange" update="any_component's_id_you_want_to_update" />
....
....
</p:selectOneRadio>
....
....
我不想更新任何组件,我只想排列列表以进行更改,然后删除“更新”属性。我会为你做这项工作。