作为Post的标题.我试图从h:inputText内部更新ArrayList的值ui:repeat,这是行不通的.
请参阅以下模拟以获得进一步理解:
我有一个POJO类如下:
public class User implements Serializable{
private String name;
private List<String> emails;
public User(String name, List<String> emails) {
super();
this.name = name;
this.emails = emails;
}
//Setters Getters
}
Run Code Online (Sandbox Code Playgroud)
在我的经理中,我创建了用户POJOS列表:
@ManagedBean
@ViewScoped
public class UserManager implements Serializable {
private List<User> userList;
public UserManager() {
userList = new ArrayList<User>();
ArrayList<String> emails= new ArrayList<String>();
emails.add("user1.1@mail.com");
emails.add("user1.2@mail.com");
userList.add(new User("User1", (List<String>) emails.clone()));
emails.clear();
emails.add("user2.1@mail.com");
emails.add("user2.2@mail.com");
userList.add(new User("User2", (List<String>) emails.clone()));
}
public void action(){
for(User u : userList){
System.out.println(u); …Run Code Online (Sandbox Code Playgroud) 在postgres数据库中,我有一个表,其中包含一个int []字段.
在我的模型中,我有一个映射表的持久bean,包括int []字段.在本课程中,我已经实现了所有需要的setter/getter.
现在,我有一个托管bean,它也扮演控制器角色,并链接到模型bean.所以,在我的xhtml中我试图这样做:
<ui:repeat value="#{drawsetController.selected.editableBaseSetList}" var="baseNumber">
<h:inputText value="#{baseNumber}"/>
</ui:repeat>
Run Code Online (Sandbox Code Playgroud)
baseSetList 是int []数组.
问题是,当我提交表单时,只有这个元素不会更新.初始化正在运行,getter被调用,但不是save,所以它必须是绑定的东西.长话短说,我试图用一个自定义类的ArrayList替换int []数组,它可以包装int(就像一个可写的Integer),但它不起作用.
也许这是重复不能正确绑定,我真的不知道.这是我经过多年的PHP :)后在java中的第一个项目.