我有一个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或验证方法 - 意味着没有抛出验证异常).
如何将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列仍然保持垂直中间对齐.
在创建之前防止约束违规检查的最佳机制是什么?修改实体?
假设'User'实体将'loginid'作为唯一约束,在创建或修改之前检查是否已存在具有此loginid名称的用户条目是明智的.
要么
您是否允许数据库抛出ConstraintViolationException并在UI层中适当地处理此消息.应该在jboss seam框架中强制执行此类检查.
注意:目前没有对seam-gen代码强制执行此类检查.
我们目前使用Seam 2.2,Richfaces和Hibernate.
我正在使用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,minFractionDigits和pattern.
为什么不起作用?这是怎么造成的,我该如何解决?
我有一个可以是yes或no的字符串,在Java辅助bean的对象中实例化.我似乎无法找到有条件地将文本设置为红色或绿色的最佳方式,这取决于JSF是否分别从bean获得yes或no.我正在使用richfaces,但我应该使用<c:if>标签吗?
我有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) 我在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不起作用...
任何的想法 ?
问候,
弗洛里安
我想在按钮单击时提交数据表,但第一次单击时不会调用该操作.这是我的代码:
<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>操作被调用.但是第一次点击时不会调用它.
有任何想法吗?
我想出了一个奇怪的问题.我试图隔离问题所以以下是我的简化代码.
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) 我正在尝试切换显示一个页面的页面<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)