标签: jsf

避免JSF Web应用程序上的后退按钮

我正在展示非常敏感的数据.用户从我的服务器注销后,我不希望其他用户能够看到数据点击浏览器的"后退"按钮.

我怎样才能做到这一点?

browser jsf back-button

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

JSF实现和组件库

我刚开始使用JSF,我有三个与JSF实现和组件库相关的问题

  1. JSF实现和组件库有什么区别?

  2. 有哪些JSF实现(如Apache MyFaces)可用,它们之间有什么区别?

  3. 有哪些JSF组件库(如富脸和冰面)可用,它们之间有什么区别?

任何提供相关信息的相关链接也会有所帮助.

jsf

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

如何在CSS选择器中使用JSF生成的带有冒号":"的HTML元素ID?

我一直在使用JSF处理一个简单的Java EE项目.

<h:form id="phoneForm">
    <h:dataTable id="phoneTable">

    </h:dataTable>
</h:form>
Run Code Online (Sandbox Code Playgroud)

我试图通过设置CSS #phoneTable { ... },但它不起作用.在客户端检查HTML源代码时,JSF生成的HTML表格似乎以形式获取客户端ID id="phoneForm:phoneTable".我无法应用CSS via #phoneForm:phoneTable { ... },因为冒号表示伪选择器的开始并导致错误.

我怎么能在CSS选择器中使用它呢?

css jsf facelets css-selectors clientid

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

在JSF托管bean中启动新线程是否安全?

我无法找到一个明确的答案,确定在会话范围内的JSF托管bean中生成线程是否安全.线程需要调用无状态EJB实例上的方法(依赖注入到托管bean).

背景是我们有一个需要很长时间才能生成的报告.这导致HTTP请求由于我们无法更改的服务器设置而超时.因此,我们的想法是启动一个新线程,让它生成报告并暂时存储它.与此同时,JSF页面显示了一个进度条,轮询托管bean直到生成完成,然后再发出第二个请求来下载存储的报告.这似乎有效,但我想确定我所做的不是黑客.

concurrency jsf ejb java-ee

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

在验证错误发生后,如何使用PrimeFaces AJAX填充文本字段?

我在视图中有一个表单,它执行自动完成和gmap本地化的ajax部分处理.我的支持bean实例化一个实体对象"Address",并且该对象引用了表单的输入:

@ManagedBean(name="mybean")
@SessionScoped
public class Mybean implements Serializable {
    private Address address;
    private String fullAddress;
    private String center = "0,0";
    ....

    public mybean() {
        address = new Address();
    }
    ...
   public void handleAddressChange() {
      String c = "";
      c = (address.getAddressLine1() != null) { c += address.getAddressLine1(); }
      c = (address.getAddressLine2() != null) { c += ", " + address.getAddressLine2(); }
      c = (address.getCity() != null) { c += ", " + address.getCity(); }
      c = (address.getState() != null) { …
Run Code Online (Sandbox Code Playgroud)

validation ajax jsf primefaces

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

在不同种类的JSF管理豆之间做出区分

我最近阅读了来自Neil Griffin的这篇文章,在不同种类的JSF Managed-Beans之间做出区分,这让我想到了我自己的应用程序中不同bean之间的区别.要快速总结一下要点:

  • Model Managed-Bean:这种类型的托管bean参与MVC设计模式的"模型"关注.当你看到"模型"这个词时 - 想想数据.JSF模型bean应该是遵循JavaBean设计模式的POJO,其中getter/setter封装属性.

  • 支持托管Bean:这种类型的托管bean参与MVC设计模式的"视图"关注.backing-bean的目的是支持UI逻辑,并且与Facef组合中的JSF视图或JSF表单具有1 :: 1的关系.虽然它通常具有带有关联getter/setter的JavaBean样式属性,但它们是View的属性 - 而不是底层应用程序数据模型的属性.JSF支持bean也可能有JSF actionListener和valueChangeListener方法.

  • Controller Managed-Bean:这种类型的托管bean参与MVC设计模式的"Controller"关注.控制器bean的目的是执行某种业务逻辑并将导航结果返回给JSF导航处理程序.JSF控制器bean通常具有JSF操作方法(而不是actionListener方法).

  • 支持Managed-Bean:这种类型的bean"支持"MVC设计模式的"View"关注中的一个或多个视图.典型的用例是向JSF h:selectOneMenu下拉列表提供ArrayList,这些列表出现在多个JSF视图中.如果下拉列表中的数据特定于用户,则bean将保留在会话范围内.

  • Utility Managed-Bean:这种类型的bean为一个或多个JSF视图提供某种类型的"实用程序"功能.一个很好的例子可能是FileUpload bean,它可以在多个Web应用程序中重用.

这对我来说很有意义,在过去的几个小时里,我一直在重构我的代码,并针对用户登录提出以下内容:

AuthenticationController是Controller Managed-Bean的一个例子.它是请求范围的,具有两个用于设置用户名和密码的getter和setter,以及两种导航方法,authenticatelogout在成功登录时将用户导航到其私有区域,或者在注销时返回主页面.

UserBean是一个支持管理Bean的示例.它是会话范围的,并且具有User类的实例(当您未经过身份验证时将使用getter和setter,它将为null),仅此而已.

AuthenticationController有这个用户作为托管属性(@ManagedProperty(value = "#{userController.user} private User user;).验证成功后,AuthenticationController将使用用于登录的相应用户名将托管属性设置为实际用户实例.

任何新的bean都可以将用户作为托管属性获取并提取他们需要的数据,例如组成员资格,如果User该类具有包含组名的列表.

这种方式是关于分离问题的正确方法吗?

java jsf java-ee backing-beans

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

Eclipse RCP插件+嵌入式Jetty + JSF

我用嵌入式Jetty创建了一个RCP插件,如下所示:

1)在plugin.xml - > Dependencies中,我添加了以下内容:

org.eclipse.equinox.http.jetty
org.eclipse.equinox.http.registry
org.mortbay.jetty.server
javax.servlet
Run Code Online (Sandbox Code Playgroud)

2)在plugin.xml - > Extensions中,我添加了一个Servlet扩展点(org.eclipse.equinox.http.registry.servlet)

class: TemperatureServlet
alias:/temperature
Run Code Online (Sandbox Code Playgroud)

TemperatureServlet看起来是这样的:

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TemperatureServlet extends HttpServlet {

    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        System.out.println("doGet Called");

        resp.sendRedirect("Convertor.jsp");
    }
}
Run Code Online (Sandbox Code Playgroud)

Convertor.jsp文件如下所示:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" …
Run Code Online (Sandbox Code Playgroud)

jsf jsp jetty eclipse-rcp embedded-jetty

45
推荐指数
1
解决办法
2295
查看次数

<p:ajax>事件列表

我搜索过互联网,但找不到<p:ajax>活动清单.任何人都可以提供<p:ajax>标签的完整事件列表吗?

如果有onblur事件或类似事件我特别感兴趣.

ajax jsf primefaces jsf-2

45
推荐指数
5
解决办法
20万
查看次数

java.lang.ClassNotFoundException:javax.servlet.jsp.jstl.core.Config

当我在输入URL后运行我的应用程序时,会出现此异常.我正在使用Eclipse和Tomcat7.0.35.我还添加了Jstl.jar和jstl1.2.jar

我的代码是

java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    at org.apache.myfaces.view.jsp.JspViewDeclarationLanguage.buildView(JspViewDeclarationLanguage.java:91)
    at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:78)
    at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:199)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

jsf jstl classnotfoundexception

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

如何在JSF页面中使用<h:form>?单一形式?多种形式?嵌套表格?

我正在使用Facelet模板技术在我正在处理的JSF 2应用程序中布局我的页面.

在我的header.xhtml中,primefaces要求菜单栏包含在h:form中.

<h:form>
    <p:menubar autoSubmenuDisplay="true">
        Menu Items here!
    </p:menubar>
</h:form>
Run Code Online (Sandbox Code Playgroud)

所以,在我的内容页面中,我将有另一个h:form或更多.

如果我只是将h:form放在我的template.xhtml中,它会起作用吗?

<h:body>
    <h:form>
        <div id="top">
            <ui:insert name="header"><ui:include src="sections/header.xhtml"/></ui:insert>
        </div>
        <div>
            <div id="left">
                <ui:insert name="sidebar"><ui:include src="sections/sidebar.xhtml"/></ui:insert>
            </div>
            <div id="content" class="left_content">
                <ui:insert name="content">Content</ui:insert>
            </div>
        </div>
        <div id="bottom">
            <ui:insert name="footer"><ui:include src="sections/footer.xhtml"/></ui:insert>
        </div>
    <h:form>
</h:body>
Run Code Online (Sandbox Code Playgroud)

我实际上正在考虑一个用例,我需要在页面中使用多个h:form.

谢谢

forms jsf nested jsf-2

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