我有一个简单的HTMLCommandButton,我想引起另一个组件的重新渲染.我知道一种简单的方法 - 添加一个ajax支持对象并让它在"onclick"事件和rerender上运行.
<h:commandButton value="Submit" action="#{actions.submitToDB}">
<a4j:support event="onclick" reRender="Button0" />
</h:commandButton>
Run Code Online (Sandbox Code Playgroud)
我认为必须有一个更聪明的方法来处理HTML CommandButton的on*属性,但我不确定写什么导致重新渲染(使用这个所谓的方法)
谢谢!
<s:decorate template="/layout/display-text.xhtml">
<h:selectOneRadio layout="pageDirection" value="#{_userHome.pref}">
<f:selectItems value="#{_userHome.getPreferences()}" />
</h:selectOneRadio>
</s:decorate>
Run Code Online (Sandbox Code Playgroud)
我可以通过直接单击除Firefox之外的所有浏览器中单选按钮选项旁边的文本来选择用户首选项.我该怎么解决这个问题?
请原谅我的头衔,这是我最近有限的大脑最好能够提出的.
所以,我有一个字符串列表,如[abc,def,ghi].
问题:在JSF中,我如何迭代列表并创建一个看起来像这个"abc,def,ghi"的字符串(注意逗号)?
对于那些有冲动告诉我我最好使用Java方法来连接字符串的人,请听一下:列表中的每个成员都应该作为单独的commandLink呈现.
如果普通的JSF看起来像:
<h:commandLink>abc</h:commandLink>, <h:commandLink>def</h:commandLink>, <h:commandLink>ghi</h:commandLink>
Run Code Online (Sandbox Code Playgroud) 我正在使用一个丰富的:combobox(比如说id ="PARENT")并且想根据第一个丰富的选择属性改变另外两个富人的下拉列表:combobox(比如"CHILD1"和"CHILD2"):combobox(PARENT) ).
这该怎么做 ?
为了只改变一个rich:combobox(仅限CHILD1),我在"PARENT"中使用了a4j:support(reRender)标签,但对于两个,我没有得到.
我使用rich:具有特定模式的日历datePattern="dd/MM/yyyy"
.当我试图从日历中获取字符串值并使用解析它时SimpleDateFormat ("dd/MM/yyyy")
遇到了一些问题,我看到变量中的日期格式与我的预期不符:Tue Nov 22 00:00:00 EET 2011
这是一些代码:
富人:日历
<rich:calendar value="#{validateReportAction.selectedDate}"
required="true"
requiredMessage="You must select a date"
mode="ajax"
id="date"
datePattern="dd/MM/yyyy"/>
Run Code Online (Sandbox Code Playgroud)
在豆
DateFormat formatter;
Date date;
formatter = new SimpleDateFormat("dd/MM/yyyy");
date = (Date) formatter.parse(getSelectedDate());
Run Code Online (Sandbox Code Playgroud)
哪里有getSelectedDate()
退货,Tue Nov 22 00:00:00 EET 2011
但我只想要日/月/年.我怎样才能做到这一点?
我是jsf的新手,我无法解决这个问题.我在rich:dataTable中有一个OutputText.我想根据其值更改此OutputText的颜色(这些值是整数).例如,如果值> = 50,则颜色为红色,否则颜色为白色.提前致谢.
我的Java EE Web应用程序与Glassfish 2.1一起正常运行.现在我想迁移到Glassfish 3.1.1,但在成功部署war文件后,它会出现以下错误:
WARNING: ApplicationDispatcher[/Myapp] PWC1231: Servlet.service() for servlet Faces Servlet threw exception
java.lang.IllegalStateException: Illegal attempt to set ViewHandler after a response has been rendered.
Run Code Online (Sandbox Code Playgroud)
我的应用程序使用以下框架.
它是用JDK 1.6编译的.
这个问题是怎么造成的,怎么解决?
编辑
我已经按照这里提供的修改
我对richfaces的依赖关系如下: -
<dependency>
<groupId>org.richfaces.framework</groupId>
<artifactId>richfaces-api</artifactId>
<version>3.3.3.Final</version>
</dependency>
<dependency>
<groupId>org.richfaces.framework</groupId>
<artifactId>richfaces-impl-jsf2</artifactId>
<version>3.3.3.Final</version>
</dependency>
<dependency>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui</artifactId>
<version>3.3.3.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我的jsf依赖是
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.0.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
在web.xml中添加了上下文参数如下: -
<context-param>
<param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
<param-value>com.sun.facelets.FaceletViewHandler</param-value>
</context-param>
<context-param>
<param-name>javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER</param-name>
<param-value>true</param-value>
</context-param> …
Run Code Online (Sandbox Code Playgroud) 我正在使用tomcat 7而我的同事在6岁时我们正在尝试运行这种类型的结构:
<c:forEach>
<rich:panelMenuGroup>
<c:forEach>
<rich:panelMenuItem>
</rich:panelMenuItem>
</c:forEach>
</rich:panelMenuGroup>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
如果有一个解决方法或类似的东西,任何建议都会很感激,因为我们将转向7并需要一种方法来实现这一点.
谢谢
我在展示中关注这个例子:http: //showcase.richfaces.org/richfaces/component-sample.jsf?demo = pop&sample = login&skin = blueSky它显示了我如何点击一个链接打开一个popupPanel并追加该面板到该链接的相同位置.但我想这样,如果我再次点击,它将关闭面板.谁知道如何实现这一目标?这是我的代码
<h:outputLink value="#" id="sb-dd-ol" >
<rich:componentControl event="click" operation="show" target="sb-dd-pp">
<a4j:param noEscape="true" value="event"/>
<rich:hashParam>
<a4j:param noEscape="true" name="top"
value="jQuery(#{rich:element('sb-dd-ol')}.parentNode).offset().top +
jQuery(#{rich:element('sb-dd-ol')}.parentNode).height()" />
<a4j:param noEscape="true" name="left"
value="jQuery(#{rich:element('sb-dd-ol')}.parentNode).offset().left" />
</rich:hashParam>
</rich:componentControl>
Test
</h:outputLink>
<rich:popupPanel id="sb-dd-pp" autosized="true" modal="false"
moveable="false" resizeable="false" followByScroll="false">
This is a test
</rich:popupPanel>
Run Code Online (Sandbox Code Playgroud) 我使用了伟大的omnifaces 1.7解决方法FixViewState来修复以下问题:viewstate和ViewScope在ajax render ="@ form"上丢失.解决方法似乎适用于f:ajax但不适用于a4j:ajax(richfaces).
该修复程序是否应该与开箱即用的richfaces一起使用?(richfaces版本是4.3.5)
也许是由a4j记录的相关问题:日志:
error[15:09:31.667]: [status=200] During update: javax.faces.ViewState not found
Run Code Online (Sandbox Code Playgroud)
谢谢!