相关疑难解决方法(0)

什么可以使用<f:metadata>,<f:viewParam>和<f:viewAction>?

任何人都可以澄清我们如何在一般情况下使用,或者在现实世界中使用这个代码片段?

<f:metadata>
    <f:viewParam id="id" value="#{bean.id}" />
    <f:viewAction action="#{bean.init}" />
</f:metadata>
Run Code Online (Sandbox Code Playgroud)

jsf jsf-2 viewparams viewaction

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

h:button和h:commandButton之间的区别

在JSF 2中,h:button和之间有什么区别h:commandButton

jsf button jsf-2

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

在页面加载时调用JSF托管bean操作

有没有办法在加载页面时执行JSF托管bean操作?

如果那是相关的,我现在正在使用JSF 1.2.

jsf action onload managed-bean

57
推荐指数
3
解决办法
10万
查看次数

如何正确地从JSF中的URL获取参数?

我相信有两种方法可以从JSF中的URL获取参数.

一个人在豆里:

Map<String, String> params =FacesContext.getCurrentInstance().
                   getExternalContext().getRequestParameterMap();
String parameterOne = params.get("parameterOne");
Run Code Online (Sandbox Code Playgroud)

另一个在facelets页面中

<f:metadata>
    <f:viewParam name="parameterOne" value="#{bean.parameterOne}"/>
</f:metadata>
Run Code Online (Sandbox Code Playgroud)

显然后者需要类中的字段和getter/setter.

除此之外,这两种不同方法之间有什么区别?应该首选哪一个?

jsf

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

何时使用preRenderView与viewAction?

什么时候应该使用preRenderView事件来初始化页面的数据而不是使用viewAction?它们在使用上是否相同,是否具有相同的效果?

preRenderView事件

<f:metadata>
  <f:event type="preRenderView" listener="#{myBean.initialize}"/>
</f:metadata>
Run Code Online (Sandbox Code Playgroud)

要么

的viewAction

<f:metadata>
  <f:viewAction action="#{myBean.initialize}"/>
</f:metadata>
Run Code Online (Sandbox Code Playgroud)

jsf-2 prerenderview jsf-2.2

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

点击bean方法并重定向GET请求

我在GlassFish上使用JSF 2和PrimeFaces 2.1.

我有一个页面,旨在允许人们在关注回调URL后执行操作(例如,作为电子邮件中嵌入的链接或某些外部身份验证或支付服务的回调URL参数).在我的情况下,我需要重置密码.回调URL有一个tokenGET参数,如下所示:

http://example.com/app/resetPasswordForm.jsf?token=abc123

在页面加载时resetPasswordForm.jsf,我需要检查令牌是否有效并重定向到主应用程序屏幕,如果它无效.

我的想法是有一个bean方法,如:

public String resetPasswordHandler.showResetForm(String token) {
  if /* token is valid */ {
    return "resetPasswordForm.jsf";
  } else {
    return "main.jsf";
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,如何在页面加载时使该方法受到影响?

不知道如何进行 - 欢迎提出建议.

jsf http-get method-invocation query-string jsf-2

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

如何使用JSF2获取GET参数?

我有这个网址例如:

http://example.com?parameter=content

当用户点击此链接时,我应该能够获得"内容"的参数值.我正在阅读BalusC 教程但是JSF 1.2并且我正在学习JSF 2.

我怎么能这样做?

jsf get jsf-2

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

如何在preRenderView侦听器方法中执行导航

我从什么可以<f:metadata>,<f:viewParam>和<f:viewAction>开始?

我有一个预呈现视图事件监听器:

<f:metadata>
    <f:event type="preRenderView" listener="#{loginBean.performWeakLogin()}" />
</f:metadata>
Run Code Online (Sandbox Code Playgroud)

它调用以下方法:

public String performWeakLogin() {
    FacesContext facesContext = FacesContext.getCurrentInstance();
    String parameter_value = (String) facesContext.getExternalContext().getRequestParameterMap().get("txtName");

    if (parameter_value != null && parameter_value.equalsIgnoreCase("pippo")) {
        try {
            return "mainPortal";
        } catch (IOException ex) {
            return null;
        }
    } else {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

和以下导航规则:

<navigation-rule>
    <from-view-id>/stdPortal/index.xhtml</from-view-id>
    <navigation-case>
        <from-outcome>mainPortal</from-outcome>
        <to-view-id>/stdPortal/stdPages/mainPortal.xhtml</to-view-id>
        <redirect/>
    </navigation-case>
</navigation-rule>
Run Code Online (Sandbox Code Playgroud)

但是,它不执行导航.它使用命令按钮时,如下所示:

<p:commandButton ... action="#{loginBean.performWeakLogin()}"  /> 
Run Code Online (Sandbox Code Playgroud)

navigation listener jsf-2 prerenderview

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

@ManagedProperty,请求参数未在@Named bean中设置

我有一个CDI托管bean,我想将请求参数设置为托管属性:

import javax.inject.Named;
import javax.enterprise.context.RequestScoped;

@Named
@RequestScoped
public class ActivationBean implements Serializable {

    @ManagedProperty(value="#{param.key}")
    private String key;

    @ManagedProperty(value="#{param.id}")
    private Long id;

    // Getters+setters
Run Code Online (Sandbox Code Playgroud)

domain/activate.jsf?key=98664defdb2a4f46a527043c451c3fcd&id=5但是,URL是永远不会设置和保留的属性null.

这是怎么造成的,我该如何解决?

我知道我可以从ExternalContext下面手动抓取它们:

Long id = Long.parseLong(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id"), 10);
String key = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("key");
Run Code Online (Sandbox Code Playgroud)

但是,我宁愿使用注射剂.

jsf cdi managed-bean http-request-parameters managed-property

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

如何使用链接调用bean操作方法?onclick不起作用

我正在尝试实现一个用户名列表,可以通过单击UPDOWN链接重新排列.

<ul>
    <ui:repeat var="user" value="#{cc.attrs.value}">
        <li>
            #{user.name}
            <h:link outcome = "user" value = "left" onclick="#{accountController.moveDown}">
                <f:param name="id" value = "${user.id}" />
            </h:link>
        </li>

    </ui:repeat>
</ul>
Run Code Online (Sandbox Code Playgroud)

这里的问题是我似乎没有正确使用onclick属性.这样做的正确方法是什么?


编辑:根据您的建议,我将所有链接放在一个表单中:

<h:form>
        <ui:repeat value="#{cc.attrs.value}" var = "user">
        <div class = "user">
            <h:commandLink id = "Link1" value = "Up" binding = "#{accountController.ommandLink}" action = "#{accountController.moveUserUp}">
                <f:attribute name = "userId" value = "#{user.id}" />
            </h:commandLink>
            <h:commandLink id = "Link2" value = "Down" binding = "#{accountController.commandLink}" action = "#{accountController.moveUserDown}">
                <f:attribute name = …
Run Code Online (Sandbox Code Playgroud)

jsf onclick hyperlink actionmethod jsf-2

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

使用JSF 2.0初始化带有页面加载参数的Backing Bean

我试图在页面加载时初始化一个支持bean.已经寻找了许多解决方案,但大多数都使用链接,按钮或根本没有参数.

场景: 客户登录到站点,然后应该在下一页上看到他的所有数据.

支持豆类:

  1. loginDetailsController - 支持登录过程.可以访问用户的密码和用户名.Login.xhtml的支持bean.

  2. customerController - 访问其余的用户详细信息.它还有一个customer_id字段.它是Home.xhtml的Backing bean.可以完全从customer_id初始化customerController.

在Home.xhtml上,可以通过这种方式获得customer_id:

 #{loginDetailsController.customer_id}
Run Code Online (Sandbox Code Playgroud)

有没有办法在页面加载时使用上面的值初始化customerController?

问候,

丹尼尔

jsf jsf-2

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