Мне нужна ваша помощь в рендеринге inputText на основе selecttio selectManyCheckbox в xhtml. Код:Как «unrender» a p: inputText на основе p: selectManyCheckbox выбор
<p:selectManyCheckbox id="basic" value="#{user1.selectedConsoles}">
<f:selectItem itemLabel="Xbox One SS" itemValue="XboxOne" />
<f:selectItem itemLabel="PS4 SS" itemValue="PS4" />
<f:selectItem itemLabel="Wii U SS" itemValue="WiiU" />
<p:ajax listener="#{user1.renderInput}" update="name"/>
</p:selectManyCheckbox>
<h:panelGroup id="name">
<p:inputText value="" rendered="#{user1.renderText}"/>
</h:panelGroup>
И код боб:
private String[] selectedConsoles; //Setter & Getter
private List<String> list = new ArrayList<String>(); //Setter & Getter
private boolean renderText = false; //Setter & Getter
public void renderInput() {
list= Arrays.asList(selectedConsoles);
if (list.contains("PS4")) {
renderText = true;
}
else if (!list.contains("PS4")) {
renderText = false;
}
}
В приведенном выше случае, когда я выбрал PS4, то inputText будет показано. Но когда я разблокирую PS4, inputText останется видимым в форме и не будет «unrendered». Как я могу это достичь.
я удалить downvote, как только вы изменить свой ответ, чтобы объяснить, как именно проблема OP является вызвана и как именно этот подход решает эту проблему. А именно, исходный код OP должен работать нормально. – BalusC
@BalusC Вы абсолютно правы, ваш downvote совершенно оправдан. Пожалуйста, опубликуйте его как фактический ответ, чтобы я мог удалить мой. –
Возможно, вы должны улучшить ответ @RagnarT, а не поспешно удалять. Не будьте так быстро отступать. Ваш ответ не является «неправильным», так как вы на самом деле не обращались к * почему * проблемы OP. Подсказка: это не в разметке – kolossus