标签: facelets

JSP和Facelets有什么区别?

我刚开始阅读Java EE 6教程,我有点困惑!我知道JavaServer Pages(JSP),甚至在我的本科学习期间做了一些编码.但是现在,在本教程中,我没有看到任何关于JSP的内容.

相反,我读到了Facelets,一个新的视图定义框架(正如本教程中所描述的).我在互联网上搜索了一下,以澄清JSP和Facelets之间的区别,我发现这篇文章给了我很多帮助(特别是BalusC的回答).但这些条款对我来说仍然有点不清楚.

JSP和Facelets有什么区别?Facelets是否会取代JSP,或者它只是一种与JSF更好的技术(如果它是后者,为什么)?如果它们不同,我应该何时使用它们?

java jsp facelets

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

从URL中检索片段(哈希)并将值注入bean中

我正在寻找一种方法将URL的片段(#)中的值注入bean(JSF),就像注入查询参数值一样.我正在使用Ben Alman的Bookmarkable jQuery插件(http://benalman.com/projects/jquery-bbq-plugin/)来创建URL片段.我希望来自prettyFaces的自定义正则表达式模式可以解决我的问题,但直到现在我还没有成功.

(http://ocpsoft.com/docs/prettyfaces/snapshot/en-US/html_single/#config.pathparams.regext)

我想在这里定义我的情况,如果有人有想法,我很想尝试一下.

我正在使用
RichFaces:3.3.3,
Spring:3.0.2.RELEASE,
Hibernate:3.5.3-Final,
JSF:2.0.2-FCS,
PrettyFaces:3.0.1

Web应用程序生成以下类型的URL,其中参数在散列(#)之后列出.我们的想法是拥有一个基于ajax的Bookmarkable URL.因此,每次单击更改系统状态的元素时,都会通过ajax将值发送到服务器,并在重写哈希值后将URL发送到服务器.散列后可以有1到3个参数,参数个数是可选的.

我的目标是,当用户为URL(带有哈希)书签并重新访问已保存的页面时,页面应该将正确的值注入系统并在之前的状态(如query-parameter)中可视化页面.

下面,我有一个正则表达式,可以捕获哈希后的所有参数.

//URL:   
http://localhost:8080/nymphaea/workspace/#node=b48dd073-145c-4eb6-9ae0-e1d8ba90303c&lod=75e63fcd-f94a-49f5-b0a7-69f34d4e63d7&ln=en

//Regular Expression:    
\#(\w*\=(\w{8}-\w{4}-\w{4}-\w{4}-\w{12}))|\&(\w*\=(\w{8}-\w{4}-\w{4}-\w{4}-\w{12}))|\&(\w*\=\w{2})
Run Code Online (Sandbox Code Playgroud)

我知道有些网站有些如何将URL片段发送到服务器端逻辑,

无论如何将URL片段中的值注入服务器端bean?

javascript java jsf facelets fragment-identifier

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

警告:此页面调用使用前缀[HTML元素名称]声明的XML名称空间,但该名称空间不存在taglibrary

我有一个JSF页面的问题.这是源代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns:h="http://java.sun.com/jsf/html">
    <head>
        <title>Login</title>
        <link rel="stylesheet" type="text/css" href="resources/css/style.css" />
        <script src="resources/js/cufon-yui.js" type="text/javascript"></script>
        <script src="resources/js/ChunkFive_400.font.js" type="text/javascript"></script>
        <script type="text/javascript">
            Cufon.replace('h1',{ textShadow: '1px 1px #fff'});
            Cufon.replace('h2',{ textShadow: '1px 1px #fff'});
            Cufon.replace('h3',{ textShadow: '0px 1px #000'});
            Cufon.replace('.back');
        </script>
    </head>
    <body>
        <div class="wrapper">
            <div class="content">
                <div id="form_wrapper" class="form_wrapper">                    
                    <h:form class="login active">
                        <h3><img style="text-align:center" src="resources/images/title.png"/></h3>
                        <div>
                            <label>Username:</label>
                            <h:inputText value="#{loginController.user}" autocomplete="off"/>                           
                        </div>
                        <div>
                            <label>Password:</label>
                            <h:inputSecret value="#{loginController.password}" autocomplete="off"/>                         
                        </div>
                        <div class="bottom">    
                                                        <h:commandButton label="Login" value="Login" action="#{loginController.userCompare}"/>
                            <div class="clear"></div>
                        </div>
                    </h:form> …
Run Code Online (Sandbox Code Playgroud)

facelets jsf-2

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

为什么Facelet HTML Validator验证我的xhtml文件没有完成

我有1个文件xthml如下:

<?xml version="1.0" encoding="UTF-8"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:p="http://primefaces.org/ui"
    template="/WEB-INF/templates/default.xhtml">

<ui:define name="content">
.......
</ui:define>
</ui:composition>
Run Code Online (Sandbox Code Playgroud)

在重启我的eclipse 3.7之后,Eclipse执行验证但它总是运行:"Facelet HTML验证器开始验证:student.xhtml".如果我在Windows中禁用Facelet验证 - 首选项,当我在此xhtml文件中执行Ctrl + Space时,eclipse将不响应.我该怎么做才能解决这个问题?谢谢.

eclipse validation facelets

16
推荐指数
0
解决办法
1617
查看次数

JavaServer Faces 2.2和HTML5支持,为什么还在使用XHTML

在阅读了JSF 2.2中的HTML5支持之后,我很惊讶地发现与在Netbeans中使用新的Web应用程序创建的模板文件中的先前Facelets版本相同的XHTML文档类型.唯一的区别是HTML标记在JSF 2.2中读取:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html">
Run Code Online (Sandbox Code Playgroud)

,而不是在较旧的JSF版本中如下:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html">
Run Code Online (Sandbox Code Playgroud)

使用XHTML并考虑到HTML5的承诺似乎有点不对劲.如果我从"已注册的库"而不是"服务器库"中选择它,我只能选择使用2.2.这是否会影响框架版本应用于项目的方式?

Facelets是否过分依赖XHTML来支持HTML5?

xhtml jsf html5 netbeans facelets

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

在同一命名容器中重用facelets组合时避免重复的id

我有一个<ui:composition>包含一些带有显式id的元素和一些引用这些id进行部分处理/更新的ajax事件.我将xhtml的这个片段封装在组合中,这样我就可以在几个不同的地方使用它,而不必复制代码.但是,当我<ui:include>在页面中多次使用合成(with )时,我会得到重复的id异常.似乎JSF没有将每个组合包装在它自己的命名容器中(就像<ui:component>那样).

有没有一种简单的方法将我的作品包装在自己的命名容器中?或者,每次我想在公共命名容器中重用xhtml片段时,是否必须使用复合组件?

jsf facelets composition jsf-2

16
推荐指数
2
解决办法
7799
查看次数

PrimeFaces中的数据表中的排序不起作用?

PrimeFaces中的数据表中的排序不起作用.请建议.

请参阅下面的.xhtml文件

<h:form>

  <p:dataTable style="width: 60%" id="dt1" value="#{bean.list}" var="entry" first="0" paginator="true" rows="10" paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" rowsPerPageTemplate="5,10,15" emptyMessage="No cars found with given criteria" >

    <f:facet name="header">
      <h2>Cars View</h2>
    </f:facet>

    <p:column sortBy="#{entry.carno}" filterBy="#{entry.carno}">
      <f:facet name="header">
        <h:outputText value="Car Number" />
      </f:facet>
      <h:outputText value="#{entry.carno}"></h:outputText>
    </p:column>

    <p:column sortBy="#{entry.carsettings['car-model']}" filterBy="#{entry.carsettings['car-model']}">
      <f:facet name="header">
        <h:outputText value="Car Model"/>
      </f:facet>
      <h:outputText value="#{entry.carsettings['car-model']}"></h:outputText>
    </p:column>

    <p:column sortBy="#{entry.carsettings.year}" filterBy="#{entry.carsettings.year}">
      <f:facet name="header">
        <h:outputText value="Car Year"/>
      </f:facet>
      <h:outputText value="#{entry.carsettings.year}"></h:outputText>
    </p:column>

    <p:column sortBy="#{entry.carsettings.color}" filterBy="#{entry.carsettings.color}">
      <f:facet name="header">
        <h:outputText value="Car Color"/>
      </f:facet>
      <h:outputText value="#{entry.carsettings.color}"></h:outputText> …
Run Code Online (Sandbox Code Playgroud)

xhtml jsf facelets primefaces

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

如何通过h:outputScript包含JavaScript文件?

我想使用jQuery Validate插件和JSF进行客户端表单验证.我发现导入资源的基本困难.

在我的JSF页面中

<h:outputScript library="js" name="jquery-1.6.2.js"></h:outputScript>
<h:outputScript library="js" name="jquery.validate.js"></h:outputScript>
<h:outputScript library="js" name="jquery.maskedinput.js"></h:outputScript>
<h:outputScript library="js" name="myapp.validate.js"></h:outputScript>
Run Code Online (Sandbox Code Playgroud)

当我单击Firefox中的脚本选项卡时,我无法在下拉列表中看到任何脚本文件.有一条消息显示:

如果标签具有"type"属性,则它应该等于"text/javascript"或"application/javascript".脚本也必须是可解析的(语法正确).

我的jquery效果如鼠标悬停,隐藏,显示等不起作用.我尝试使用通常的脚本标签

<script type="text/javascript" src="../js/jquery-1.6.2.js"></script>
<script type="text/javascript" src="../js/jquery.validate.js"></script>
<script type="text/javascript" src="../js/jquery.maskedinput.js"></script>
<script type="text/javascript" src="../js/myapp.validate.js"></script>
Run Code Online (Sandbox Code Playgroud)

哪个没用.仍然无法找到我的JS文件.我的所有JS文件都放在

   Web pages
       |_ js
           |_jquery-1.6.2.js,my.validate.js,jquery.validate.js,jquery.maskedinput.js
Run Code Online (Sandbox Code Playgroud)

我尝试了使用jQuery和JSF 2.0资源发布的解决方案之一,但没有成功.

请建议我解决这个问题.我不想在ajax中使用JSF内置验证,因为我们将代码从JSP移到JSF并且已经编写了验证.我想重用我之前写过的现有jQuery验证.

jquery facelets jquery-validate jsf-2

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

JSF/PrimeFaces - 带有<p:layout>的模板

我需要像创建布局这个,但所有的分隔的文件,如容器:

top.xhtml

<p:layout fullPage="true">
        <p:layoutUnit position="north" header="#{support.applicationTitle}">
            <h:form>
                <p:menubar>
                    <p:menuitem value="Quit" icon="ui-icon-close" action="#{userController.logOut()}" />
                </p:menubar>
            </h:form>
        </p:layoutUnit>
Run Code Online (Sandbox Code Playgroud)

没有</p:layout>因为它将在我的footer.xhtml关闭像:

<p:layoutUnit position="south" header="© 2012 - 2012 PORTAL DE IDEIAS">
</p:layoutUnit></p:layout>
Run Code Online (Sandbox Code Playgroud)

我试过这两个文件,但是我收到一个错误,告诉我需要关闭布局标签,这是正确的,但我怎样才能解决我的问题?这是模板的最佳方法吗?另一个问题是布局标签需要一个中心layoutUnit

layout jsf templates facelets primefaces

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

ui:composition和ui之间的区别:Facelets中的装饰

Facelets ui:compositionui:decorateFacelets 之间有什么区别?两者似乎都支持ui:define儿童标签.在什么情况下你会使用这些?

java jsf facelets java-ee jsf-2

15
推荐指数
1
解决办法
6740
查看次数