相关疑难解决方法(0)

ViewParam vs @ManagedProperty(value ="#{param.id}")

定义View Params之间有什么区别:

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

并在ManagedBean中定义属性,如下所示:

@ManagedProperty(value = "#{param.id}")
private Integer id;
Run Code Online (Sandbox Code Playgroud)

jsf jsf-2 managed-bean viewparams managed-property

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

非请求范围Bean中的@ManagedProperty(value ="#{param.id}")

我需要将参数(POST)传递给@managedBean,我使用了这样的托管属性:

@ManagedProperty(value = "#{param.id}")
private int id;
Run Code Online (Sandbox Code Playgroud)

Bean的范围是ViewScope

我最终得到了这个错误:

无法创建托管bean收据.发现了以下问题: - 表达式#{param.id},request引用的对象的范围比引用的托管bean范围短

我能做什么?

arjan看看:

我的页面:Facelet Title

<form method="post" action="faces/index.xhtml">
  <input name="id" value="4" />
  <input type="submit" value="submit" />
</form>

<h:form>
  <h:commandLink value="click" action="index">
    <f:param id="id" name="id" value="20"/>
  </h:commandLink>
</h:form>
Run Code Online (Sandbox Code Playgroud)

java jsf managed javabeans jsf-2

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

获取GET请求参数到@ViewScoped bean

我有一个(请求范围的)列表,用户可以从中选择"PQ"(链接列表).单击或以其他方式输入浏览器时,将显示每个PQ的主页面.每个PQ的页面都是表格

http://localhost:8080/projectname/main.jsf?id=2

这是PQ bean的第一个:

@Named
@ViewScoped
public class PqHome implements Serializable
{
    @PersistenceContext(unitName="...")
    private EntityManager em;

    private Integer id;
    private PQ instance;

    @PostConstruct
    public void init()
    {
        System.out.println("ID is " + id); // ID from URL param

        instance = em.find(PQ.class, id);       
    }

    public Integer getId()
    {
        return id;
    }

    public void setId(Integer id)
    {
        this.id = id;
    }

    public PQ getInstance()
    {
        return instance;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是main.xhtml:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                ...>
  <ui:define name="metadata">
    <f:metadata>
      <f:viewParam name="id" value="#{pqHome.id}">
        <f:convertNumber integerOnly="#{true}" />
      </f:viewParam> …
Run Code Online (Sandbox Code Playgroud)

java javabeans cdi scopes jsf-2

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