我有一个命令按钮,它绑定了它的动作方法。
<f:view >
<pm:page title="Title">
<pm:view id="viewId" swatch="c">
<p:outputPanel id="panelId">
<h:form id="formId">
<p:commandButton action="#{bean.actionMethod}" update="formId" value="Click" />
</h:form>
</p:outputPanel>
</pm:view>
</pm:page >
</f:view>
内部行动方法。导航指的是同一页面。某些值在操作方法内更新。
public String applyPeriod(String caller)
{
.....
retrun SAMEPAGE;
}
一切都好。但是没有渲染样式。页面返回默认样式。
知道如何加载样式。我不想通过真正的刷新来改变URL。我应该通过ajax调用来管理它。
我跟踪页面的请求。没有对风格的要求。
我使用primefaces,primefaces mobile,它是一个移动页面。
答案 0 :(得分:2)
如果您没有在表单ID后面使用:
,我相信问题可能与相对组件搜索有关,尝试根据相对标识符查找表单。通过使用不同元素的ID,您可以获得预期的行为,我会按下它们,因为它们是以与<p:commandButton/>
的上下文相对的方式正确引用的。
尝试使用update="@form"
或update=":formId"
。另外,作为附注,如果您想使用完整的ajax并且不会将用户重定向到任何地方,则您的方法应为void
或返回null
。
答案 1 :(得分:0)
我真的不知道幕后的原因。但是,我通过提供精确的组件ID来更新commandButton的属性来解决这个问题。
<p:commandButton action="#{bean.actionMethod}" update="ListOfComponentIds" value="Click" />