我正在尝试使用<p:resetInput>
它所代表的含义。这工作正常,直到我用@org.springframework.stereotype.Controller
.
XHTML 页面:
<h:form id="form" prependId="true">
<p:panel id="panel" header="New" style="margin-bottom:10px;" toggleable="true" toggleOrientation="horizontal">
<h:panelGrid id="panelGrid" columns="3" cellpadding="5">
<h:outputLabel for="txtName" value="State *" />
<p:inputText id="txtName" value="#{testManagedBean.txtName}" label="Name" required="true" maxlength="45">
<f:validateLength minimum="2" maximum="45" />
</p:inputText>
<p:message for="txtName"/>
</h:panelGrid>
<p:commandButton id="btnSubmit" update="panel" actionListener="#{testManagedBean.submit}" type="submit" ajax="true" value="Save" icon="ui-icon-check"/>
<p:commandButton value="Reset" update="panel" process="@this">
<p:resetInput target="panel" />
</p:commandButton>
</p:panel>
</h:form>
JSF 托管 bean:
@ManagedBean
@RequestScoped
public final class TestManagedBean
{
private String txtName;
//Setters and getters.
}
当我有这样注释的 JSF bean 时@Controller
,
@Controller
@ManagedBean
@RequestScoped
public final class TestManagedBean
{
private String txtName;
//Setters and getters.
}
这不起作用,并且当按下重置值的按钮时,唯一 UIInput 组件的值<p:inputText>
不会重置为。null
这甚至不适用于actionListener
like,
<p:commandButton value="Reset" update="panel" process="@this" actionListener="#{testManagedBean.reset()}" >
<p:resetInput target="panel" />
</p:commandButton>
在 JSF 托管 bean 中,该reset()
方法定义如下。
public void reset()
{
RequestContext.getCurrentInstance().reset("form:panel");
}
因此,最后,我只在托管 bean 中留下了以下选项。
public void reset()
{
txtName=null;
}
手动重置值。
有没有办法<p:resetInput>
按照它的意思进行工作?