标签: richfaces

如何从JSF支持bean向特定组件添加消息

我有一个h:inputText和一个连接到它的h:消息:

<h:inputText id="myText" value="#{myController.myText}" />
<a4j:outputPanel>
    <h:message for="myText" .../>
</a4j:outputPanel>
Run Code Online (Sandbox Code Playgroud)

我想从java发送消息,方式如下:

FacesContext.getCurrentInstance().addMessage(arg0, arg1);
Run Code Online (Sandbox Code Playgroud)

发送到h:消息,但发送到特定表单中的特定ID.我怎样才能做到这一点?(没有实现验证bean或验证方法 - 意味着没有抛出验证异常).

jsf richfaces jsf-2

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

对齐panelGrid列中的内容

如何将panelGrid组件创建的列中的内容与top?对齐?

我尝试了没有成功,下面的代码

<h:panelGrid columns="2" style="vertical-align:top;  " >
       <p:tabView style="margin:0px 0px 50px 0px; width: 450px; padding-top: 0px;vertical-align:top" ></p:tabView>                
       <p:menubar autoSubmenuDisplay="true" style="width: 300px; vertical-align:top" ></p:menubar>
</h:panelGrid>
Run Code Online (Sandbox Code Playgroud)

但是由此创建的2列仍然保持垂直中间对齐.

jsf richfaces primefaces

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

在持久化实体之前检查约束违规

在创建之前防止约束违规检查的最佳机制是什么?修改实体?

假设'User'实体将'loginid'作为唯一约束,在创建或修改之前检查是否已存在具有此loginid名称的用户条目是明智的.

要么

您是否允许数据库抛出ConstraintViolationException并在UI层中适当地处理此消息.应该在jboss seam框架中强制执行此类检查.

注意:目前没有对seam-gen代码强制执行此类检查.

我们目前使用Seam 2.2,Richfaces和Hibernate.

hibernate seam jpa richfaces

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

在jsf中以2磅十进制格式显示数字

我正在使用JSF 2和RichFaces 3.在下图所示的数字中,数字显示为数据库中的数字.

在此输入图像描述

但是我想显示它们,6749395.20好像分数部分在那里,5095138.00如果没有分数部分那里.

截至目前,我尝试过这样的事情.

 <rich:column>
    <f:facet name="header">
        <h:outputText value="Total Amount"/>
    </f:facet>
    <h:outputText value="#{rr[2]}">
        <f:convertNumber type="number" groupingUsed="true" minFractionDigits="2" pattern="#0.00"/>
    </h:outputText>
 </rich:column>
Run Code Online (Sandbox Code Playgroud)

其实我显示所有的人都在一起,但我与他们都试图与所有可能的组合type,groupingUsed,minFractionDigitspattern.

为什么不起作用?这是怎么造成的,我该如何解决?

java richfaces converter jsf-2

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

JSF/RichFaces:条件文本样式

我有一个可以是yes或no的字符串,在Java辅助bean的对象中实例化.我似乎无法找到有条件地将文本设置为红色或绿色的最佳方式,这取决于JSF是否分别从bean获得yes或no.我正在使用richfaces,但我应该使用<c:if>标签吗?

java jsf richfaces

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

Rich Extended DataTable列宽

我有RichFaces扩展dataTable的问题

如果列更多地说20,而不是给出水平滚动条,则列将被压缩.

我尝试用%,px给出列宽.但是没用.

有人熟悉这个吗?

<rich:column label="Select" sortable="false" width="10%">
  <f:facet name="header"> 
    <h:selectBooleanCheckbox id="chk" align="center"
      value="#{bean.selectAll}" onclick="selectAll();"/>
  </f:facet>
  <input id="part_#{rowKey}" type="checkbox"
    name="selectedParts" value="#{listVar.id}" />
</rich:column>
Run Code Online (Sandbox Code Playgroud)

jsf richfaces

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

JSF2使用tomcat进行日志记录

我在tomcat6(6.0.28)上有一个使用JSF2(2.1.2),Richfaces4(4.0.0.Final)的项目.为了管理我的EAR的Tomcat和WebSphere7之间的可移植性,我在tomcat lib中有以下jar:el-api-2.2.jar,jsf-api-2.1.2.jar,jsf-impl-2.1.2.jar ,validation-api-1.0.0.GA.jar.

我的问题是我从来没有设法改变JSF或Richfaces的日志级别,除了初始化之外,我在控制台内部看不到任何内容.即使我的服务器响应中出现异常!

我试过几种方法:

1)在我的应用程序中,我正在使用slf4j和log4j.所以自然的方式是使用SLF4JBridgeHandler.install().我在init()方法中创建了一个小servlet来调用这个方法,并添加了'load-on-startup'以确保它在JSF Servlet之前加载(我不确定tomcat是否关心这个load-on-startup指令因为我之前仍然从JSF init获取日志,例如:

INFO: JSF1027 : [null] Les objets ELResolvers de JSF n’ont pas été enregistrés avec le conteneur JSP.
09-09-2011 16:50:58:591 [Thread-2] 937  DEBUG com.jsf.test.SLF4JBridgeHandlerInstallerServlet - SLF4JBridgeHandler.install() OK!
Run Code Online (Sandbox Code Playgroud)

我还在log4j.xml中添加了一些配置:

<logger name="javax.faces"><level value="debug"/></logger>  
<logger name="com.sun.faces"><level value="debug"/></logger>
<logger name="javax.enterprise.resource.webcontainer.jsf"><level value="debug"/></logger>
Run Code Online (Sandbox Code Playgroud)

但是在显示JSF页面时我没有在控制台中看到任何日志...我还尝试使用过滤器在执行JSF Servlet之前调用SLF4JBridgeHandler.install(),但是我只从中获取了很多OK日志我的过滤器......

2)我试着在这里完全遵循教程(它在tomcat日志文件夹中为JSF2的每个记录器创建新文件).我尝试通过更改tomcat的conf文件夹中的logging.properties并在我的应用程序中的src/resources /文件夹中添加一个新的logging.properties.但没有运气......

3)我尝试通过添加以下命令将JSF记录器添加到tomcat中的logging.properties:

javax.enterprise.resource.webcontainer.jsf.managedbean.level=FINEST
javax.enterprise.resource.webcontainer.jsf.managedbean.handlers = java.util.logging.ConsoleHandler
javax.enterprise.resource.webcontainer.jsf.config.level=FINEST
javax.enterprise.resource.webcontainer.jsf.config.handlers = java.util.logging.ConsoleHandler
javax.enterprise.resource.webcontainer.jsf.facelets.level=FINEST
javax.enterprise.resource.webcontainer.jsf.facelets.handlers = java.util.logging.ConsoleHandler
javax.enterprise.resource.webcontainer.jsf.resource.level=FINEST
javax.enterprise.resource.webcontainer.jsf.resource.handlers = java.util.logging.ConsoleHandler
javax.enterprise.resource.webcontainer.jsf.lifecycle.level=FINEST
javax.enterprise.resource.webcontainer.jsf.lifecycle.handlers = java.util.logging.ConsoleHandler
Run Code Online (Sandbox Code Playgroud)

还没有运气......

4)我试着通过tomcat而不是juli使用log4j来遵循这个文档.它似乎运行良好,但更改生成的log4j.properties将JSF记录器放入DEBUG不起作用...

任何的想法 ?

问候,

弗洛里安

jsf logging tomcat richfaces jsf-2

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

<a4j:commandbutton>仅在第二次单击时调用action

我想在按钮单击时提交数据表,但第一次单击时不会调用该操作.这是我的代码:

<h:panelGrid id="addToThisDepartmentPanel">
    <h:outputText value="#{messageDataBean.message}" rendered="#{messageDataBean.isSuccess eq false}" style="color:red" id="addToThisDepartmentMessage"/>
    <h:form>
        <h:dataTable value="#{systemResultViewUtil.systemUserDetailDataBeansList}" var="departmentdetail" id="addToThisDepartmentDataTable" rendered="#{systemResultViewUtil.systemUserDetailDataBeansList.size() gt 0}">
            <h:column>
               <f:facet name="header">
                   Name
               </f:facet>
               <h:outputText value="#{departmentdetail.name}" style="text-align: left;padding-right: 120px" />
            </h:column>
            <h:column>
                <f:facet name="header">
                    Current Department
                </f:facet>
                <h:outputText value="#{departmentdetail.depName}" style="text-align: left;padding-right: 120px" />
            </h:column>
            <h:column>
                <f:facet name="header">
                    Add To This
                </f:facet>
                <h:selectBooleanCheckbox value="#{departmentdetail.cheked}" style="text-align: left;padding-right: 120px"/>
            </h:column>
         </h:dataTable>

         <a4j:commandButton oncomplete="if(#{messageDataBean.isSuccess eq true}){ closeAddToThisDepartmentDialog()}" value="Add TO This Department" action="#{departmentServiceBean.addEmployeeToThisDepartment}" id="addToThisDepartmentButton"
                                                       render=":addToThisDepartmentMessage :message" execute=":addToThisDepartmentDataTable" />
     </h:form>
</h:panelGrid>
Run Code Online (Sandbox Code Playgroud)

问题是,在第二次单击时,我的<a4j:commandButton>操作被调用.但是第一次点击时不会调用它.
有任何想法吗?

jsf richfaces ajax4jsf jsf-2

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

仅当验证失败时,输入字段才包含先前的值

我想出了一个奇怪的问题.我试图隔离问题所以以下是我的简化代码.

public class MyBean {

  private List<Data> dataList;
  Data selectedData;

  public MyBean() {
    dataList = new ArrayList<Data>();
    dataList.add(new Data("John", 16));
    dataList.add(new Data("William", 25));
  }

  public List<Data> getDataList() {
    return dataList;
  }

  public void edit(Data data) {
    selectedData = data;
  }
  public void newData() {
    selectedData = new Data(null, null);
  }

  public Data getSelectedData() {
    return selectedData;
  }

  public class Data {
    String name;
    Integer age;
    Data(String name, Integer age) {
      this.name = name;
      this.age = age;
    }
    public String getName() …
Run Code Online (Sandbox Code Playgroud)

jsf richfaces popup ajax4jsf jsf-1.2

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

有条件地渲染<ui:include>

我正在尝试切换显示一个页面的页面<rich:dataTable>.在我刚刚包含<ui:include>模板之前,它只会显示整个表格.

<ui:include src="../log/viewDlg.xhtml"/>
Run Code Online (Sandbox Code Playgroud)

现在我希望能够在网页上打开/关闭它.在页面上显示可能有一个按钮或链接.我怎样才能实现它?


更新1:由于一些奇怪的原因,我无法让它出现,这是我到目前为止基于反馈写的内容

视图:

<a4j:commandLink value="View"
    action="#{bean.showview}" render="viewPanel"/>

<h:panelGroup id="viewPanel">
    <h:panelGroup id="tableRenderPanel" rendered="#{bean.showPolicyView}">    
        <ui:include src="../log/viewDlg.xhtml"/>
    </h:panelGroup>                         
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)

支持豆:

private boolean showPolicyView = false;

public void showView() {
    showPolicyView = !showPolicyView;
}

public boolean isShowPolicyView(){
    return showPolicyView;
}
Run Code Online (Sandbox Code Playgroud)

jsf richfaces facelets jsf-1.2 uiinclude

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