相关疑难解决方法(0)

如何选择合适的bean范围?

我注意到有不同的bean范围,如:

@RequestScoped
@ViewScoped
@FlowScoped
@SessionScoped
@ApplicationScoped
Run Code Online (Sandbox Code Playgroud)

每个人的目的是什么?如何为我的bean选择合适的范围?

jsf scope jsf-2 managed-bean

372
推荐指数
2
解决办法
20万
查看次数

如何在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万
查看次数

如何在重定向页面中显示面部消息

我提供了一个允许用户为应用程序创建帐户的界面.在该过程结束时,注册方法执行注册过程向页面添加成功消息,然后将用户导航到显示所有系统用户的中央数据表.

我遇到的问题是,由于页面重定向,成功消息永远不会显示.我不能在方法中有wait()因为在方法完成之前不会显示JSF消息.理想情况下,我希望显示成功消息,然后在指定的时间后重定向页面.

我怎样才能做到这一点?

jsf redirect message

24
推荐指数
1
解决办法
2万
查看次数

在JSF表单提交上保留GET请求查询字符串参数

我有3页:

  • main.xhtml
  • agreement.xhtml
  • generated.xhtml

agreement.xhtml需要两个参数正确加载:serviceIdsite.所以,正常的网址看起来像这样:/app/agreement.xhtml?site=US&serviceId=AABBCC.

我有这个按钮 agreement.xhtml

<h:form>
   <h:commandButton value="Generate License File" action="#{agreement.generateMethod}" />   
</h:form>
Run Code Online (Sandbox Code Playgroud)

@RequestScoped#{agreement}有这样的方法:

public String generateMethod(){
    .......
    return "generated";
}
Run Code Online (Sandbox Code Playgroud)

我需要,在点击时,generateMethod()方法被执行,完成后,用户被重定向到generated.xhtml页面.发生了什么事是,在点击,网页浏览器发送的用户/app/agreement.xhtml,而且由于它不发送参数siteserviceId,它崩溃.

我尝试过generateMethod()返回a "generated?faces-redirect=true",但仍然没有.有任何想法吗?

navigation jsf jsf-2 http-request-parameters

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

用于双重提交预防的纯Java/JSF实现

我们在WebSphere v8.5上使用JSF 2.0,其中有几个组件库PrimeFaces 4.0,Tomahawk 2.0,RichFaces等.

我正在寻找通用机制,以避免刷新页面时重新提交表单,或者再次单击提交按钮时.我有许多不同场景的应用程序.

目前我已经考虑过在onclick属性中使用一段JavaScript来禁用该按钮,但这并不令人满意.我正在寻找一个用于此目的的纯Java实现,类似于Struts2 <s:token>.

jsf form-submit double-submit-prevention

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

如何使用导航规则进行重定向

JSF中的Bean重定向可以通过以下方式完成

externalContext.redirect("foo.xhtml");
Run Code Online (Sandbox Code Playgroud)

但我想使用规则,在<navigation-rule/>(faces-config.xml)中为<from-outcome/>&&传递命令行参数设置.

externalContext.redirect("from-outcome?param=bar");
Run Code Online (Sandbox Code Playgroud)

不管用.怎么做?

navigation jsf redirect jsf-2

8
推荐指数
1
解决办法
2万
查看次数