3
commandButton이있는 복합 구성 요소를 만들고 있습니다. 그러나 그것은 효과가 없습니다.p에 대한 action 및 actionListener : 구성 요소의 commandButton
사용법 : 구성 요소의
<wk:commandButton value="Non-Ajax actionListener" actionListener="#{ioBean.saveListener}" />
코드 : commandButton.xhtml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:cc="http://java.sun.com/jsf/composite">
<cc:interface>
<cc:attribute name="value" />
<cc:attribute name="action" method-signature="void action(javax.faces.event.ActionEvent)" default="null"/>
<cc:attribute name="actionListener" method-signature="void actionListener(javax.faces.event.ActionEvent)" default="null"/>
<cc:attribute name="styleClass" default="button" />
</cc:interface>
<cc:implementation>
<p:commandButton
value="#{cc.attrs.value}"
action="#{cc.attrs.action}"
actionListener="#{cc.attrs.actionListener}"
styleClass="#{styleClass}">
<cc:insertChildren />
</p:commandButton>
</cc:implementation>
</html>
그리고이 로그입니다 :
0000006c FaceletViewDe E Inner component action not found when retargetMethodExpressions
0000006c FaceletViewDe E Inner component actionListener not found when retargetMethodExpressions
0000006c srt W com.ibm.ws.webcontainer.srt.SRTServletResponse setIntHeader SRVE8094W: Ostrzeżenie: nie można ustawić nagłówka. Odpowiedź została już zatwierdzona.
나는 문제는 기본 동작에 대한 가치와 생각 actionListener. 그러나 PrimeFaces 문서에 따르면 action 및 actionListener의 기본값은 null입니다. 하나의 옵션은 action 및 actionListener가 null이거나 정의 된 네 가지 변형을 만드는 것이지만 좋은 해결책 인 것 같지 않습니다.
wk : commandButton이 양식 태그 안에 있습니까? p : commandButton에 다음 코드를 추가하십시오. ajax = "# {empty cc.attrs.actionListener? false : true}" – Yamada
이 경우에는 ajax를 사용하고 싶지 않습니다. 버튼의 값처럼 말합니다. :) – WojciechKo
그래서 ajax = "false"를 넣으십시오. 기본값은 true입니다. – Yamada