작동하지 않습니다 렌더링 :JSF 다음 코드는 양식을 다시 쓰게하지 않습니다
XHTML :
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
template="/WEB-INF/templates/default.xhtml">
<ui:define name="content">
<h:form id="form">
<rich:panel header="My Header">
<h2>
<h:outputLabel value="#{tournamentBean.mode}" />
</h2>
<a4j:commandButton value="Toggle"
action="#{tournamentBean.toggleMode()}" render="form" />
</rich:panel>
</h:form>
</ui:define>
</ui:composition>
콩 : 나는 때문에 JSF 2.2 제이보스 8.0을 사용하고
import java.io.Serializable;
import javax.faces.view.ViewScoped;
import javax.inject.Named;
@SuppressWarnings("serial")
@Named("tournamentBean")
@ViewScoped
public class TournamentBean implements Serializable {
private String mode = "A";
public String getMode() {
return mode;
}
public void toggleMode() {
if (this.mode.equals("A"))
this.mode = "B";
else
this.mode = "A";
}
}
. 메서드 toggleMode는 버튼을 클릭 할 때마다 호출됩니다. IE 11에서는 폼을 다시 렌더링하지 않습니다. Chrome에서는 두 번 작동하지만 더 이상 작동하지 않습니다.
무엇이 누락 되었습니까?
RichFaces 만 가지고도 컴포넌트를 찾기 위해'UIComponent # findComponent()'메소드를 사용하기 때문에'render = "form"이 효과적 일 것입니다 만, 그것은 비효율적이며'render = "@ form" 현재 양식을 다시 렌더링하는 데 사용됩니다. – skuntsel
"/WEB-INF/templates/default.xhtml"을 표시하십시오. 주위에 추가 h : form이 포함될 수 있습니까? –
Andrey
팁 주셔서 감사합니다. 'render = "@ from" '도움이되지 않았습니다. 그리고 default.xhtml은 매우 간단합니다. 양식이나 특별한 것은 없습니다. – Dave