我有jsf页面:
....
<form jsfc="h:form" action="">
<h:dataTable value="#{newMusician.strings}" var="preferredMusicGenre" id="musicGenresSelectTable">
<h:column>
<h:inputText value="#{preferredMusicGenre}" immediate="true"/>
</h:column>
</h:dataTable>
<p>
<input type="submit" jsfc="h:commandButton" value="Add" action="#{newMusician.saveNewMusician}"/>
</p>
</form>
....
以及具有StringArrayList的托管bean:
@ManagedBean
@ViewScoped
public class NewMusician {
private ArrayList<String> strings = new ArrayList<String>();
public NewMusician() {
strings.add("olo");
}
public ArrayList<String> getStrings() {
return strings;
}
public void saveNewMusician() {
.....
}
....
}
问题:当我在其中更改文本并按保存按钮时,在saveNewMusician()方法中,我可以看到ArrayList“字符串”包含相同的旧值“
olo”,但是我没有在输入字段中插入那个值。如果使用h:selecOneMenu,则会出现相同的问题。
如果不使用字符串,而是将字符串聚合并将值设置为字符串的对象,则情况会发生变化。因此,如果我要使用一些POJO并将inputText更改为:
<h:inputText value="#{preferredMusicGenrePojo.string}" immediate="true"/>
一切都OK。
问题:为什么使用1级吸气剂<h:inputText value="#{preferredMusicGenre}"/>
不正确,但是使用2级吸气剂:
<h:inputText value="#{preferredMusicGenrePojo.text}"/>
可以吗?
A String
是不可变的。它没有值的二传手。您需要将其包装在bean(或称为POJO)中。
public class Musician {
private String preferredGenre;
// Add/generate constructor, getter, setter, etc.
}
然后按如下所示更改您的托管bean。
@ManagedBean
@ViewScoped
public class NewMusician {
private ArrayList<Musician> musicians = new ArrayList<Musician>();
public NewMusician() {
musicians.add(new Musician("olo"));
}
public ArrayList<Musician> getMusicians() {
return musicians;
}
public void saveNewMusician() {
// ...
}
// ...
}
和您的数据表:
<h:dataTable value="#{newMusician.musicians}" var="musician">
<h:column>
<h:inputText value="#{musician.preferredGenre}" />
</h:column>
</h:dataTable>
如果我尝试更新面板中的任何内容 它抛出:java.lang.IllegalArgumentException:ThreatListPanel: 这是xhtml 这是更新bean
我有一个Observable类,它在字符串变化时通知observer。在观察者的update方法中,更新的字符串可以打印到控制台。但是GUI没有相应的更新。为什么?
我对摩基托并不陌生,但这次我在工作中发现了一个有趣的案例。我希望你能帮我解决这件事。 我需要注入mock来改变测试过程中的某些方法行为。问题是,bean结构是嵌套的,并且这个bean在其他bean内部,不能从test方法访问。我的代码如下所示: 所以在我的测试中,我希望调用nestedDAO.method返回模拟答案。 我尝试执行一个initmocks: 还要在我的测试类上添加注释: 总是从方法获
问题内容: 我似乎在使用样式语法实例化嵌套类类型的空数组时遇到问题: 这是我误会的东西吗(早在我喝咖啡之前,但我已经查看了发行说明,并且我认为您应该能够引用这样的嵌套类)或Beta 7中的错误? 这可以作为一种解决方法: 问题答案: 这肯定看起来像是编译器中的错误,尤其是 允许 您实例化嵌套类的空数组就好了。它根本不适用于初始化程序语法。 我会提出一个错误。同时,对于遇到问题的任何人,都可以通过使
我是java新手,所以请不要后悔java中的对象和东西正在传递引用的值,但下面是我试图传递对象的代码。当我通过传递到函数中更新值时,a的值没有改变。发生了什么请帮助我。。。
问题内容: 这是一个python新手问题: 我有以下目录结构: 其中,和是文件夹。两者和处于同一级别。 module.py有一个名为的类,我想在test_file.py中实例化它的一个实例。我该怎么办? 我试过了: 但是我得到了: 问题答案: 您想要的是相对导入,例如: 问题在于,如果您将test_file.py作为主模块调用,它将无法正常工作。如前所述这里: 请注意,显式和隐式相对导入均基于当前