相关疑难解决方法(0)

支持bean(@ManagedBean)或CDI Beans(@Named)?

我刚开始阅读Core JavaServer Faces,第3版.他们这样说(强调我的):

对于可以在JSF页面中使用的bean,有两种不同的机制,CDI bean和JSF托管bean,这是一个历史事故.我们建议您使用CDI bean,除非您的应用程序必须在像Tomcat这样的普通servlet运行器上运行.

为什么?他们没有提供任何理由.我一直在使用@ManagedBean在GlassFish 3上运行的原型应用程序中的所有bean,我还没有发现任何问题.我不介意迁移@ManagedBean@Named,但我想知道为什么我应该打扰.

jsf java-ee cdi jsf-2

106
推荐指数
3
解决办法
7万
查看次数

具有共享代码的多个JSF项目的结构

我有两个共享大量代码的JSF项目 - java类,xhtml文件,标记库,css和javascript文件等.我的开发环境/平台主要包括Eclipse,Ant,Perforce和Tomcat.

有没有人找到一种方法来创建和组织共享代码,以便公共代码可以保留在一组文件夹中?

Eclipse可以很容易地为java源添加外部文件夹,但不能满足其他文件类型.我很欣赏任何想法.

eclipse jsf projects structure

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

找不到http://java.sun.com/jsf/facelets的标记库描述符

我有一个JSP

<%@taglib uri="http://java.sun.com/jsf/facelets" prefix="ui" %>
Run Code Online (Sandbox Code Playgroud)

但它有错误

绝对的uri:http://java.sun.com/jsf/facelets无法在web.xml或使用此应用程序部署的jar文件中解析

我有图书馆facelets-lib.jarjsf-facelets-1.1.10.jar,我想是的Facelets,但它们不包含JSP标签库描述符.

什么文件是正确的?

jsf jsp facelets taglib

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

模板文本中不允许使用#{...}

<a4j:ajax event="click" render="tempval" listener="#{question.setParameters}" />
Run Code Online (Sandbox Code Playgroud)

当我们使用此代码时,服务器会抛出该消息的异常

#{...} is not allowed in template text
Run Code Online (Sandbox Code Playgroud)

这是怎么造成的,我该如何解决?

jsf ajax4jsf

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

在JSF2项目中混合使用JSP和XHTML(Facelets) - 可能吗?

我有一个客户想要使用JSF2,他们喜欢XHTML现在是默认的(Facelets).

但是,他们的JSF1.x代码库中有大量的"遗留"JSP.

我知道这可能不太可取,但是有可能在JSF2中支持两者的混合,至少在他们移植的过渡期间吗?

我知道可以在JSF1.x中混合使用两者,但我在JSF2中找不到任何关于此的信息.

我用谷歌搜索过,但自然所有JSF2都集中在Facelets上.我对混音的简短尝试(我不是JSF的专家!)导致了失败.

jsf jsp facelets jsf-2

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

如果没有指定值,是否应该跳过验证?

我在GlassFish 3上使用JSF2.

我有一个接受和可选电话号码的表格.我有这个自定义电话号码验证器(下面),我将字段设置为required ="false",因为电话号码在表单中是可选的.

问题是,该字段中的值始终得到验证.如果没有指定值,是否应该跳过验证?

肯定有一些我做错了.任何帮助表示赞赏,谢谢!

<h:outputText value="#{msg.profile_otherPhone1Label}#{msg.colon}" />
  <h:panelGroup>
    <p:inputText label="#{msg.profile_otherPhone1Label}" id="otherPhone1" value="#{profileHandler.profileBean.otherPhone1}" required="false">
      <f:validator validatorId="phoneValidator" />
    </p:inputText>
  <p:spacer width="12"/>
  <h:outputText value="#{msg.profile_phoneExample}" />
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)

#

public class PhoneValidator implements Validator {

    @Override
    public void validate(FacesContext facesContext, UIComponent uIComponent,
            Object object) throws ValidatorException {

        String phone = (String) object;

        // count the digits; must have at least 9 digits to be a valid phone number
        // note: we're not enforcing the format because there can be a lot of variation …
Run Code Online (Sandbox Code Playgroud)

validation jsf jsf-2

8
推荐指数
1
解决办法
6018
查看次数

使用哪个XML命名空间与JSF 2.2

我已将我的应用程序从JSF 1.2迁移到2.2.

它在java.sun.com域 上使用XML命名空间xmlns:f="http://java.sun.com/jsf/core".但是,Oracle的Java EE 7教程正在使用xmlns.jcp.org域名 上的XML命名空间xmlns:f="http://xmlns.jcp.org/jsf/core".

推荐哪一个,为什么会改变?

jsf facelets xml-namespaces jsf-2.2 java-ee-7

8
推荐指数
2
解决办法
7524
查看次数

JSF中的最佳实践:模型,操作,getter,导航,phaselisteners

我已经进入了一个重新考虑JSF实现的项目.现有代码没有遵循正确的JSF标准.为了实现这一点,我正在学习JSF中的所有概念(我已经掌握了JSF的实验).具体来说,我想问一下我的想法.

  • 在MVC模式中,JSF中的模型组件是什么?它是Managed Bean吗?
  • 在动作方法中编写业务逻辑是个好主意吗?我已经看过用行动方法写的数百行.
  • 你认为我们可以在getter方法中编写任何逻辑吗?在JSF生命周期中调用getter或setter的次数.
  • 编写faces-config.xml的传统方法是什么?我在一个文档中读到它说好的做法是将bean的托管bean声明和导航案例一起编写.它会更具可读性.
  • 写入阶段监听器会影响响应时间.例如,我正在编写一个逻辑来解析PhaseListener中的请求参数并执行一些逻辑.对此有什么建议吗?

请回答以上问题.如果我对答案很清楚,那么我会提出更多问题.

java jsf

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

从facelets 1.1迁移到faclets 2.0 - FaceletViewHandler

我已阅读以下帖子,这非常有帮助 从JSF 1.2迁移到JSF 2.0

但是我遇到了迁移的问题,因为我有一个从FaceletViewHandler扩展的自定义视图处理程序 - 这不是faclets 2的一部分.

我正在迁移JBoss 4.2.2以下内容: - JSF 1.2到JSF 2.0

我也想迁移这些小子 - 我有上述问题.

在我的应用程序中,我也在使用Tomahawk - 这次迁移有什么问题吗?

提前致谢.

ELICO.

facelets jsf-2

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

元数据组件需要嵌套在af:metadata标签中.建议:在<f:metadata>中包含必要的组件

我经历了不同的来源,如:

似乎问题已在jsf 2.2.1中得到修复,其中当我尝试使用时,我面临问题,下面是我的配置:

所引用:

<!DOCTYPE html>
<html lang="#{languageBean.language}"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
    xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
    xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions"
    xmlns:p="http://primefaces.org/ui" xmlns:o="http://omnifaces.org/ui"
    xmlns:of="http://omnifaces.org/functions">
<!-- Enables CTRL+SHIFT+D for activating Facelets debug window -->
<ui:debug />
<f:view locale="#{languageBean.language}" encoding="UTF-8" contentType="text/html">
<!-- Client templates can insert f:metadata here, and this will NOT show up in the showcase page source code -->
<ui:insert name="meta" />

<c:set var="contextPath" value="${pageContext.request.contextPath}"
    scope="application" />
<f:loadBundle var="messageResource" basename="MessageResource" />
<h:head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible"
        content="EmulateIE8,IE=edge,chrome=1" />
    <meta http-equiv="pragma" content="no-cache" />
    <meta …
Run Code Online (Sandbox Code Playgroud)

jsf viewparams jsf-2.2

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