相关疑难解决方法(0)

如何在JSF中导航?如何使URL反映当前页面(而不是前一页)

我正在学习JSF,当我意识到每当我们使用时<h:form>,JSF的标准行为总是向我显示浏览器中上一页的URL ,而不是当前页面的URL,我感到非常惊讶和困惑.

我知道这与JSF总是将表单发布到同一页面的方式有关,然后只是呈现控制器将其返回给浏览器的任何页面,而浏览器不知道页面位置已更改.

似乎JSF已经存在了足够长的时间,必须有一个干净,可靠的方法来处理这个问题.如果是这样,你介意分享吗?

我找到了各种解决方法,但遗憾的是,这似乎不是一个真正可靠的解决方案.

  • 只需接受该网址具有误导性.
  • 附加"?faces-redirect=true"每个 bean的操作的返回值然后
    • 弄清楚如何@RequestScoped用其他东西替换(Flash Scopes,CDI对话,@ SessionScoped,......).
    • 接受为每个用户操作进行两次HTTP往返.
  • 使用某种方法(例如第三方库或自定义代码)隐藏URL中的页面名称,始终对每个页面使用相同的通用URL.

如果它"?faces-redirect=true"是如此好,有没有办法配置整个应用程序以这种方式处理所有请求?

navigation url jsf redirect

51
推荐指数
1
解决办法
4万
查看次数

JSF跳过Required-Validation而不是immediate = true

我有多种形式,我有必填字段和可选字段.

提交这样的表单,我需要对要执行的required属性进行验证,这样可以正常工作.要取消这样的形式我使用属性immediate="true"p:commandbutton,这使得在其作用发生应用请求值 -PHASE如下处理:点击一个特定的按钮时如何跳过验证?

但是,对于大型表单,我想为用户提供一个Save-Button,以便他可以稍后继续.

为了保存当前状态,我还想忽略required-attribute的验证.但是,使用immediate="true"不起作用,因为那时我的save方法简单保存,因为JSF生命周期永远不会命中"UpdateModelValues"-Phase.(根据http://www.javacodegeeks.com/2012/01/jsf-and-immediate-attribute-command.html)

那么,如何绕过所需的检查但不跳过生命周期的一半?

validation lifecycle jsf immediate-attribute

42
推荐指数
3
解决办法
5万
查看次数

如何让验证取决于按下的按钮?

我创建了表单,我希望在新表创建时在表上显示以前的现有项目.我希望在填写表格时显示匹配的项目.但是当我尝试在没有完成表单的情况下过滤列表时,会出现验证消息,并且表格不会更新.

不知道是否可能,但我想做的事情是这样的:

<h:form id="form">

    <h:outputText value="Name: "/>
    <p:inputText value="#{itemsBean.name}" id="name" required="true"/>
    <br/>
    <h:outputText value="Description: "/>
    <p:inputText value="#{itemsBean.description}" id="description" required="true"/>

    <p:commandButton value="Save" update="form" actionListener="#{itemsBean.save}"/> //validate and save
    <p:commandButton value="Filter" update="form" actionListener="#{itemsBean.updateItemsList}"/> //don't validate, and update the table.

    <p:dataTable id="list" value="#{itemsBean.itemsList}" var="item">     
        <p:column>
            <h:outputText value="#{item.name}"/>
        </p:column>
        <p:column>
            <h:outputText value="#{item.description}"/>
        </p:column>
    </p:dataTable>

</h:form>
Run Code Online (Sandbox Code Playgroud)

我是JSF的新手.

validation jsf primefaces jsf-2 commandbutton

34
推荐指数
3
解决办法
4万
查看次数

PrimeFaces禁用取消按钮验证

在一个表单中,我有一些带有两个commandButton的inputText,一个用于accept,一个用于cancel.如何仅对取消按钮禁用验证?

<h:form id="detailsForm">
  <p:inputText id="editUsername" value="#{userController.editUser.usrUsername}" />
  <p:inputText id="editFirstName" value="#{userController.editUser.usrFirstName}" />
  <p:inputText id="editLastName" value="#{userController.editUser.usrLastName}" />
  <p:commandButton value="Accept" update=":detailsForm" actionListener="#{userController.onDetailsEditAccept}" />
  <p:commandButton value="Cancel" update=":detailsForm" actionListener="#{userController.onDetailsEditCancel}" />
</h:form>
Run Code Online (Sandbox Code Playgroud)

我已经尝试required="false"在字段上插入但它没有用.我也尝试<f:validateBean disabled="true" />在字段上插入但它没有用.

validation primefaces jsf-2

22
推荐指数
2
解决办法
3万
查看次数

为什么将"立即"属性添加到EditableValueHolders?

最初immediateflag仅用于ActionSource接口.但后来它也被添加到EditableValueHolder界面中.设计决策的原因是什么?

jsf design-decisions immediate-attribute

5
推荐指数
1
解决办法
3911
查看次数

PrimeFaces不处理数据的CommandButton

我有一个JSF/PrimeFaces表单页面设置来编辑一些配置细节.底部是提交和取消按钮实现为CommandButton."取消"按钮如下所示:

<p:commandButton
        action="priorPage.xhtml?faces-redirect=true"
        value="Cancel" />
Run Code Online (Sandbox Code Playgroud)

问题是视图bean仍然会对输入到表单中的数据进行更多处理,而不是我想要的.它不会更新数据库中的任何内容,但是如果(比方说)我将字符串输入到正在查找bean中的数字的字段中,它仍然会产生错误.

当然,我的解决方案的一部分是让bean优雅地处理那种糟糕的数据,我正在研究它.但是我也想调整那个按钮,这样它就可以将用户带到前一页.我可以设置一些属性来阻止表单被处理吗?

jsf primefaces

1
推荐指数
1
解决办法
1857
查看次数

p:commandButton 不对验证错误调用操作

所以我有这个取消按钮:

<p:commandButton id="cancelButton" value="Cancel" action="#{myBean.doOnCancel}" onclick="dialogWidget.hide();" />
Run Code Online (Sandbox Code Playgroud)

取消按钮所在的小部件 ( <p:dialog>) 有一个日期字段。每次我打开对话框时,输入一些有效值并单击取消 -myBean.doOnCancel执行并隐藏对话框。现在,每次我打开对话框时,输入一个无效值,例如单个字母而不是日期,我都会收到一条验证消息,指出日期格式错误,然后单击取消 - 对话框已隐藏,但操作中定义的方法 ( myBean.doOnCancel)不被执行。知道为什么吗?

validation jsf cancel-button primefaces

1
推荐指数
1
解决办法
2541
查看次数