我刚开始阅读Core JavaServer Faces,第3版.他们这样说(强调我的):
对于可以在JSF页面中使用的bean,有两种不同的机制,CDI bean和JSF托管bean,这是一个历史事故.我们建议您使用CDI bean,除非您的应用程序必须在像Tomcat这样的普通servlet运行器上运行.
为什么?他们没有提供任何理由.我一直在使用@ManagedBean在GlassFish 3上运行的原型应用程序中的所有bean,我还没有发现任何问题.我不介意迁移@ManagedBean到@Named,但我想知道为什么我应该打扰.
我有两个共享大量代码的JSF项目 - java类,xhtml文件,标记库,css和javascript文件等.我的开发环境/平台主要包括Eclipse,Ant,Perforce和Tomcat.
有没有人找到一种方法来创建和组织共享代码,以便公共代码可以保留在一组文件夹中?
Eclipse可以很容易地为java源添加外部文件夹,但不能满足其他文件类型.我很欣赏任何想法.
我有一个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.jar和jsf-facelets-1.1.10.jar,我想是的Facelets,但它们不包含JSP标签库描述符.
什么文件是正确的?
<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)
这是怎么造成的,我该如何解决?
我有一个客户想要使用JSF2,他们喜欢XHTML现在是默认的(Facelets).
但是,他们的JSF1.x代码库中有大量的"遗留"JSP.
我知道这可能不太可取,但是有可能在JSF2中支持两者的混合,至少在他们移植的过渡期间吗?
我知道可以在JSF1.x中混合使用两者,但我在JSF2中找不到任何关于此的信息.
我用谷歌搜索过,但自然所有JSF2都集中在Facelets上.我对混音的简短尝试(我不是JSF的专家!)导致了失败.
我在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) 我已将我的应用程序从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实现的项目.现有代码没有遵循正确的JSF标准.为了实现这一点,我正在学习JSF中的所有概念(我已经掌握了JSF的实验).具体来说,我想问一下我的想法.
请回答以上问题.如果我对答案很清楚,那么我会提出更多问题.
我已阅读以下帖子,这非常有帮助 从JSF 1.2迁移到JSF 2.0
但是我遇到了迁移的问题,因为我有一个从FaceletViewHandler扩展的自定义视图处理程序 - 这不是faclets 2的一部分.
我正在迁移JBoss 4.2.2以下内容: - JSF 1.2到JSF 2.0
我也想迁移这些小子 - 我有上述问题.
在我的应用程序中,我也在使用Tomahawk - 这次迁移有什么问题吗?
提前致谢.
ELICO.
我经历了不同的来源,如:
似乎问题已在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)