我在选项卡组件中有一些 Primefaces 输入组件,它们从 Java bean 类中获取它们的数据。他们完美地工作。问题是肯定有问题,因为如果我切换到另一个选项卡并马上回来,组件就会变成红色。虽然它们仍然有效,但这可能与我在应用程序中遇到的另一个问题有关。我怎样才能看到这个红色是什么意思?控制台上不显示任何消息。有没有我没有收到的消息?
编辑:添加截图和代码
我的代码:
XHTML:
<!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:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:body>
<ui:composition>
<h:form>
<p:panelGrid columns="2" style="margin-bottom:10px" cellpadding="5">
<h:outputText value="Item: "/>
<p:selectOneMenu value="#{devTestController.items}">
<f:selectItems value="#{devTestController.items}" var="item" itemLabel="#{item.label}" itemValue="#{item.value}"/>
</p:selectOneMenu>
</p:panelGrid>
<p:commandButton value="asdf1" action="#{devTestController.doAction()}"/>
</h:form>
</ui:composition>
</h:body>
</html>
爪哇豆:
import java.util.LinkedList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean
@RequestScoped
public class DevTestController
{
private List<Parameter> items;
@PostConstruct
public void initList()
{
items = new LinkedList<>();
items.add(new Parameter("Item1", "Item1"));
items.add(new Parameter("Item2", "Item2"));
items.add(new Parameter("Item3", "Item3"));
}
public List<Parameter> getItems()
{
return items;
}
public void doAction()
{
System.out.println("asdf");
}
}