Tag: jsf

JSTL c:选择c:不在JSF页面中工作

考虑以下jstl选择: Display Text AuthMsgBean = Bean rw =地图 ‘2’=关键 题: 当我只显示#{AuthMsgBean.rw[‘2’] ne null}值时,它显示正常(true),但是一旦我尝试将值解析为 when标签re – 就像测试总是假的一样。 如果我在测试中输入true( test=”true” ),则显示test=”true”显示文本test=”true” 。 是否可以在#{AuthMsgBean.rw[‘2’] ne null}表达式之前评估标记? 如果是这样,有解决方法吗?

从servlet访问JSF会话作用域bean,由嵌入在JSF webapp中的applet调用

我需要从servlet访问会话范围的bean。 我已经试过了 UserBean userBean = (UserBean) request.getSession().getAttribute(“userBean”); 如本文所述。 但是我只得到null作为结果,尽管UserBean的实例是alreay instatiated。 这些是我用于userBean的注释/导入: import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean @SessionScoped public class UserBean implements Serializable{ … } 一些背景为什么我无法摆脱servlet:我的jsf页面中有一个文件上传小程序。 这个小程序需要一个地址,它可以发送它的POST请求。 (我无法编辑此post请求以添加更多字段或其他内容)。 然后我的servlet的post方法存储文件。 托管bean无法完成此作业,因为必须使用@MultiPartConfig注释servlet,并且我无法将此批注添加到jsf托管bean。

为什么f:validateDoubleRange仅适用于@SessionScoped?

有人可以向我解释为什么我的例子中的Foo在到达validateDoubleRange类时总是为空? 最终结果是validation器的最小值始终为0.在outputText元素中,数字3在页面上显示正常。 如果我使用@SessionScoped而不是@ViewScoped来validation它是@ViewScoped 控制器: import java.io.Serializable; import java.math.BigDecimal; import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; @ViewScoped @ManagedBean(name = “fooController”) public class FooController implements Serializable { private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(FooController.class); private static final long serialVersionUID = 1L; private Foo foo; private BigDecimal amount; private Long fooId; public Long getFooId() { return fooId; } public void setFooId(Long […]

Google App Engine + JSF 2会出错

我正在使用这个链接用于jsf谷歌应用程序引擎,所以当我运行eclipse时我得到这个错误所以给你想要的解决方案链接是http://www.mkyong.com/google-app-engine/google-app-engine -jsf -2-示例/ java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass (IsolatedAppClassLoader.java:207) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) at org.mortbay.util.Loader.loadClass(Loader.java:91) at org.mortbay.util.Loader.loadClass(Loader.java:71) at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:73) at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:242) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685) at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) at org.mortbay.jetty.Server.doStart(Server.java:224) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at com.google.appengine.tools.development.JettyContainerService.startContainer […]

h:commandbutton,如何重定向到外部站点?(JSF 2)

当我使用命令按钮重定向到页面时,在我的项目中,你只需要给出没有扩展名的页面名称,然后在action属性中使用?faces-redirect = true ,我将被重定向。 但是如果我想重定向到外部页面(例如:www.google.com)怎么办? 我试过很多方面: www.google.com,google.com, http://google.com 但我失败了。 这就是我做的: 然后是支持bean: @Named(“mainPageBB”) @RequestScoped public class MainPageBB { @EJB private ILinkManagerEJB linkManagerEJB; public String goToLink() { String link = linkManagerEJB.retrieveLink(); if(link != null) { System.out.println(link); return link.trim() + “?faces-redirect=true”; } return null; } 注意: retrieveLink()返回的值; 始终是www.google.com(100%肯定) 我在控制台中完全没有错误,页面只是刷新。 此外,我确信第一个if子句validation为true,所以我认为没有理由跳转到返回null。 更新 我尝试使用外部上下文,但是我得到了404,因为它将当前url附加到链接字符串: public String goToRandomLink() { String link […]

JSF和类型安全

当我挣扎了好几个小时后,我终于找到了那些烦人的ClassCastException来自哪里,我认为这是由Hibernate生成的,它是enum映射。 但它们来自我的JSF视图,我在其中传递了一个List 回到我的支持bean。 我的数据只包含枚举的值: public Role[] getRoles() { return Role.values(); } public Role[] getRoles() { return Role.values(); } 。 当我在User -class中测试roles的setter并得到这个时,我感到非常震惊: public void setRoles(List paramRoles) { System.out.println(paramRoles.get(0) instanceof Role); //output: false for(Role role : paramRoles){ …} //crashes with ClassCastException } 将List paramRoles更改为List paramRoles工作得很好。 这怎么可能? 这些generics不应该是类型安全的还是与JSF相关的类型擦除会导致整个类型的安全问题? 也不应该将h:selectManyCheckbox的返回值设为List ,就像我通过f:selectItems传入的一样?

在JSF 2.0中检索其他组件的客户端ID

JSF 2.0是否有内置方法来查找另一个组件的客户端ID? 在SO上有大约一千个与客户端ID相关的问题,并且有很多hackish方法可以做到这一点,但我想知道JSF 2.0是否带来了一个我不知道的更简单的方法。 #{component.clientId}计算给定组件自己的客户端ID,但我想引用另一个组件的ID。 这篇博文提到了component.clientId ,它也说#{someComponent.clientId}可以工作,但是我可以告诉它没有。 我相信他在JSF 2.0的任何参考实现出来之前都写过,所以他只是去了JSR,也许这个function发生了变化。 我不确定。 我知道PrimeFaces和RichFaces都有自己的函数来返回客户端ID,但我只是想知道是否有内置的JSF 2.0方法。 这里有些例子: 这可以返回outputText的ID。 “ 根据上面的博客文章,这应该有效,但事实并非如此。 我没有输出。 “ “ 这适用于PrimeFaces: “ 在RichFaces中工作: “ 此外,如果我可能的话,我正在寻找不会破坏的解决方案,如果我更改javax.faces.SEPARATOR_CHAR值或者我在引用的组件之外添加/删除容器。 我花了很多时间来追踪由硬编码ID路径引起的问题。

什么是GZIP JSF-Seam Web应用程序页面的最佳方法

我正在开发一个关于Tomcat的JSF Web应用程序,计划在不久的将来使用Seam,我想添加我们的网页和资源(即Javascript和CSS文件)的压缩。 我知道Java Web中GZIP响应的三种方法: 使用Ehcache GZIPfilter:它在Appfuse中使用,所以它可能是可靠的,它会在应用之前检查用户代理是否支持GZIP,但它似乎与Seam有问题,我们将使用http://seamframework.org/Community / EHCacheGZipFilterIncompatibleWithSeam 。 使用pjl-filter。 从stackoverflow问题: Tomcat压缩不添加内容编码:在标头中的gzip ,它似乎没有任何内存泄漏,但我不知道它是否有Seam问题。 使用Tomcat的内置压缩 – 尽管它可能不提供内容编码(Tomcat 6.0.14似乎工作正常,但您只能为不应用的用户代理压缩提供黑名单。 有没有人在JSF-Seam环境中有这些方法的经验? 哪个是“最佳”解决方案? 谢谢,格伦

使用MyFaces和WASCE / Geronimo时的java.lang.ClassNotFoundException:com.sun.faces.config.ConfigureListener

我正在尝试使用MyFaces v 2.1与WebSphere Application Server Community Edition v3.0.0.1和Eclipse Juno创建一个简单的JSF Web应用程序,但是当我尝试运行该应用程序时,返回以下错误 java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener org.apache.geronimo.common.DeploymentException: java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.createWebAppClassFinder(AbstractWebModuleBuilder.java:665) at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.configureBasicWebModuleAttributes(AbstractWebModuleBuilder.java:698) at org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.addGBeans(TomcatModuleBuilder.java:469) at org.apache.geronimo.j2ee.deployment.SwitchingModuleBuilder.addGBeans(SwitchingModuleBuilder.java:174) at org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:764) at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:255) at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:140) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34) at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:131) at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:883) at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:245) at org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:344) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) […]

JSTL c:forEach导致@ViewScoped bean在每个请求上调用@PostConstruct

我再次看到@PostConstruct每次都在触发,即使没有使用绑定属性。 看到这段代码: – Facelet Title 这是JSF中最简单的bean: – package managedBeans; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; @ManagedBean(name=”TestBean”) @ViewScoped public class TestBean implements Serializable { private List listItems; public List getListItems() { return listItems; } public void setListItems(List listItems) { this.listItems = listItems; } public TestBean() { } @PostConstruct public void […]