JSF 1.1에서 값 전달과 관련하여 많은 문제가 있습니다. bean에서 JSF 페이지로 값을 전달하지만, 다시 전달되지 않아 NullPointerException이 발생합니다. bean의 declareFinishList는 페이지에 표시 할 초기화 메소드에 의해 채워지지만 제출하면 for (DeclareFinish df : declareFinishList)
에 nullpointer 예외가 발생하여 다시 전달되지 않음을 나타냅니다. 지도 declaredFinishMap
또한 null로 나옵니다. 나는 전에이 일을했기 때문에이 다른 하나가 문제가되는 이유를 이해하지 못한다. 다른 비슷한 테이블은 잘 작동한다.빈에서 JSF 값이 업데이트되지 않습니다.
편집 : 세션 범위에 배치하여 declareFinishList
을 전달할 수 있었지만 여전히 declaredFinishMap
을 전달할 수 없습니다.
bean은 faces-config.xml의 rsaleController에 의해 정의됩니다. 전체 페이지는 내가 포함시키지 않은 h : 형태로 싸여 있습니다.
콩 :
public class RetailSaleController extends BaseBean {
private List<DeclareFinish> declareFinishList;
private Map<DeclareFinish, Boolean> declaredFinishMap = new LinkedHashMap<DeclareFinish, Boolean>();
public void saveDeclareFinishList(ActionEvent event) {
List<DeclareFinish> list = new ArrayList<DeclareFinish>();
for (DeclareFinish df : declareFinishList) {
if(declaredFinishMap.get(df)) {
list.add(df);
}
}
}
}
페이지 : 즉 다른 코드에서 않는 한
<h:panelGroup id="declareFinishListPanel">
<rich:dataTable id="declareFinishItemTable" border="1"
value="#{rsaleController.declareFinishList}" var="item"
<rich:column width="16">
<f:facet name="header">
<rich:spacer height="24px;" />
</f:facet>
<h:outputText value="#{rowNo+1}" />
</rich:column>
<rich:column style="text-align:center;">
<f:facet name="header">
<h:outputText value="Locked" />
</f:facet>
<h:selectBooleanCheckbox id="reset"
value="#{rsaleController.declaredFinishMap[item]}" />
</rich:column>
<rich:column sortBy="#{item.dealerId}" sortIcon="none;" width="110">
<f:facet name="header">
<h:outputText value="#{labels.crmsFldLabDealer}" />
</f:facet>
<h:outputText value="#{item.dealerId}" />
</rich:column>
</rich:dataTable>
</h:panelGroup>
<a4j:commandLink reRender="declareFinishItemTable"
actionListener="#{rsaleController.saveDeclareFinishList}">
<h:graphicImage value="/images/save.gif" title="Save changes"
style="height:16;width:16;border-style:none;vertical-align:middle" />
</a4j:commandLink>
초기화하는 메소드가 포함되지 않았지만 페이지가로드 될 때 제대로 채워집니다. 제출시 다시 공백으로 처리되는 것처럼 보이므로 아무 것도 변경하지 않으면 반영되지 않습니다. –
ManagedBean의 범위는 무엇입니까? 요청,보기? –
요청. 나는 실제로 콩을 재사용하고있다. 유사한 기능을 가진 다른 페이지에서 이미 사용하고 있습니다. 이 새로운 것이 효과가없는 이유를 정말로 모르십시오. –