相关疑难解决方法(0)

如何在 JSF 中构建“编辑”按钮并在 h:outputText 和 h:inputText 之间切换

如何创建“编辑”按钮,以便在单击该按钮时将 更改h:outputTexth:inputText

jsf edit conditional-rendering

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

commandLink操作未执行

我有以下XHTML:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <head>
        <title>TODO supply a title</title>
    </head>
    <body>
        <f:metadata>
            <f:viewParam id="productCV" name="productName" value="#{productBean.product}"
                         converter="#{productConverter}" required="true"/>
        </f:metadata>

        <ui:composition template="/templates/mastertemplate.xhtml">
            <!-- Define the page title for this page-->
            <ui:define name="pageTitle">
                <h:outputFormat value="#{msgs.productPageTitle}">
                    <f:param value="#{productBean.product.description}"/>
                </h:outputFormat>
            </ui:define>

            <!-- Pass the categoryName parameter to the sidebar so the category of this product is highlighted-->
            <ui:param name="categoryName" value="#{productBean.product.categoryName}"/>

            <ui:define name="content">
                <!-- If productconversion failed, show this error-->
                <h:message id="error" for="productCV" style="color: #0081c2;" rendered="#{productBean.product == null}" />

                <!-- If productconversion succeeded …
Run Code Online (Sandbox Code Playgroud)

jsf jsf-2

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

托管Bean - 仅在页面加载时执行代码

我很好奇如何让JSF只在页面加载时加载某些业务逻辑,不是在单击按钮(ActionEvent)或执行时运行此代码AjaxBehaviorEvent.

我的bean在@RequestScoped使用JSF 2.1和Primefaces.

因为ActionEventAjaxBehaviorEvent被称为事后我不知道该怎么告诉豆在@PostConstruct那是因为事件的调用.

是因为豆子放在错误的范围内?

java jsf javabeans primefaces jsf-2

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

Java EE bean 和 volatile 关键字

Java EE 规范的 Servlet、EJB 和 CDI 部分描述了 bean 管理(注入等)。但是规范也没有描述(显式或隐式)bean 容器的并发属性。如果我使用了 WildFly 或 GlassFish,那么 Java EE 应用服务器可以从一个线程访问更多的 bean 对象。

所以问题是,我是否必须对volatile所有 bean 字段使用关键字,理论上可以从多个线程访问(即对于几乎所有 bean,至少对于所有用 注释的字段@Inject)?

ejb volatile javabeans cdi jakarta-ee

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

JSF 1.0 vs JSF 2.0

这两个版本的JSF(JSF 1.0和JSF 2.0)有什么区别?由于我是java的新手,我只发现建筑级别的差异.但是,从视角来看,我无法知道它对应用程序开发有多大影响?

此外,强加的MVC与JSF和Spring不同.即使JSF改进了架构,Spring仍然使用得更多.Spring的重要性在上面有什么意义?

java jsf frameworks web-frameworks jsf-2

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

如何保存2个相关的selectOneMenu值

关于jsf相关的下拉选择,我在这里遇到了一个小问题.我有2个下拉选择:第一个是独立的,第二个显示结果依赖于这是代码:

<h:panelGroup id="addressPanel">        
        <h:outputLabel styleClass="label" value="Provincia: " />
        <h:selectOneMenu onchange="updateCombos()"
            value="#{indirizzoCtrl.codiceProvincia}"  >
            <f:selectItem itemValue="" itemLabel=""></f:selectItem>
            <f:selectItems value="#{indirizzoCtrl.allProvincia}" var="c"
                itemLabel="#{c.nome}" itemValue="#{c.siglaProvincia}" />
        </h:selectOneMenu>
        <h:outputLabel styleClass="label" value="Comune: " />
        <h:selectOneMenu 
            value="#{indirizzoCtrl.codiceComune}"  >
            <f:selectItem itemValue="" itemLabel=""></f:selectItem>
            <f:selectItems value="#{indirizzoCtrl.allComuni}" var="c"
                itemLabel="#{c.descrizione}" itemValue="#{c.codiceComune}" />

        </h:selectOneMenu>
    </h:panelGrid>
</h:panelGroup>
<p:remoteCommand name="updateCombos" update="addressPanel masterForm:msg"  />              
<p:commandButton styleClass="commandButton" value="Save"
    actionListener="#{indirizzoCtrl.save}">
</p:commandButton>
Run Code Online (Sandbox Code Playgroud)

好吧,当用户在选择了两个值后保存表单时,托管bean indirizzoCtrl(请求作用域)无法将第二个下拉列表的值映射回列表,因为没有列表.事实上,#{indirizzoCtrl.allComuni}只有在indirizzoCtrl.codiceProvincia!=null...更新模型阶段之前,才调用从数据库检索数据的getter .因此,第一次调用列表的getter时无法检索任何值,这会使更新模型阶段失败.我怎么能处理这个场景......我认为这是一个很常见的场景,所以我在这里遗漏了一些东西......

ajax jsf jsf-2

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

如何在 JSF 托管 bean 中创建、访问和销毁会话?

目前,我正在为在线购物车创建一个 Web 应用程序,我需要在每个 jsf 页面上维护会话。

我的问题是:

  1. 如何在托管 bean 中创建和销毁会话

  2. 如何访问存储在会话变量中的值?像这样?

    FacesContext.getCurrentInstance().getExternalContext().getSessionMap.put("key",object);
    
    Run Code Online (Sandbox Code Playgroud)
  3. 如何在 jsf 中销毁会话

我还需要使用销毁会话,session.invalidate()但我失败了!!

session jsf scope invalidation

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

如何在SesionScoped bean中使用ViewScoped bean?

我有三个托管bean:一个作用域范围(S)和两个视图作用域(A,B).我想在S和B中使用A的功能,但问题是在会话范围内注入视图范围的bean是不可能的.

The scope of the object referenced by expression #{a}, view, is shorter than the referring managed beans (s) scope of session
Run Code Online (Sandbox Code Playgroud)

我不想复制A的功能.任何的想法?

jsf dependency-injection session-scope jsf-2 view-scope

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

在新选项卡/窗口中打开链接,而不会丢失当前 JSF 页面的视图范围

我需要2.xhtml在当前 JSF 页面(例如1.xhtml)的新选项卡中打开一个新的JSF 页面(例如)。我应该使用哪个 JSF 组件?<h:commandLink>或者<h:outputLink>

1.xhtml单击链接以2.xhtml在新选项卡中打开后,我不想失去当前页面的范围。

的豆1.xhtml@ViewScoped。我应该把它改成@RequestScoped吗?

navigation jsf new-window view-scope

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

如何将bean属性从一个视图传递到另一个视图

我正在使用JSF 2.1和Primefaces:

我有一个带有托管属性的视图作用域托管bean,以及一个在其他视图范围内的托管bean上设置内容并转发到引用该托管bean的其他页面的方法:

@ManagedBean
@ViewScoped
public class HelloMB {

   @ManagedProperty("otherMB")
   private OtherMB other;

   public String changeOtherMB() {
      otherMB.setAnyObject(new Object());
      return "otherPage.xhtml";
   }

}

@ManagedBean
@ViewScoped
public class OtherMB {

   private Object o;    

   public void setAnyObject(Object o) {
      this.o = o;
   }

}
Run Code Online (Sandbox Code Playgroud)

因此,当渲染otherPage时o为null.

你知道我怎么能解决这个问题?如何在@ViewScoped托管bean中保留对象并将其保存在其他页面上而不使用@SessionScoped

jsf parameter-passing managed-bean view-scope

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