如果我把:
<head>
//..
</head>
<body>
//..
</body>
Run Code Online (Sandbox Code Playgroud)
我的CSS样式正确应用,但当我改为:
<h:head>
//..
</h:head>
<h:body>
//..
</h:body>
Run Code Online (Sandbox Code Playgroud)
我的风格似乎错了CSS的某些部分.
为什么会这样?
更新: 为了简化我的问题,我将在下面显示两个图像:
没有
<h:head>.. <h:body>(这是正确的CSS样式)

同
<h:head>..<h:body>
Run Code Online (Sandbox Code Playgroud)

我只是改变了同样的事情,这个错误发生了.
我是关于JSF的新手,我必须做些什么?
更新2: 我正在使用Rich Faces 4,我意识到的一件事就是在标签的末尾出现了一个脚本:
<link type="text/css" rel="stylesheet" href="/brainset/rfRes/skinning.ecss.xhtml?db=eAHL6rC8BQAEkAIG">
Run Code Online (Sandbox Code Playgroud)
我没有把它,这只出现
> <h:head> ... <h:body>
Run Code Online (Sandbox Code Playgroud)
标签.我认为我的风格被RichFaces所取代,包括这个'skinning.ecss'.
我正在学习创建自己的自定义标签,但我遇到了一些麻烦,我不能使这个简单的应用程序使用我创建的标签.我认为我做的一切都很好,但我担心我创建的新库的路径是错误的.也许有人可以帮助我找到我的错误所在并理解它的原因.这是我到目前为止所做的:
1-我将标签创建为xhtml块(mybutton.xhtml)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition>
<h:commandButton type="submit" value="#{buttonSubmitLabel}" />
<h:commandButton type="reset" value="#{buttonResetLabel}" />
</ui:composition>
</html>
Run Code Online (Sandbox Code Playgroud)
2-然后我创建了一个.xml文件,它将充当我所有自定义标签都被编入索引的库(mytagsconfig.taglib.xml)
<?xml version="1.0"?>
<facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd"
version="2.0">
<namespace>http://mytags.com/facelets</namespace>
<tag>
<tag-name>mybutton</tag-name>
<source>mytags/mybutton.xhtml</source>
</tag>
</facelet-taglib>
Run Code Online (Sandbox Code Playgroud)
3-我试图在web.xml中注册我的新库,所以我可以使用它
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>CHAPTER 5 Creating your own Custom tags</display-name>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<!-- REGISTERING A CUSTOM TAG INTO …Run Code Online (Sandbox Code Playgroud) 我正在使用Eclipse和Glassfish 3.0.虽然我以前做过类似的事情,但对这项技术来说还是很新 非常简单,确实有一个绑定到支持bean的数据表.添加方法并删除我已经介绍过的方法 - 问题在于我调用的更新方法.我似乎无法看到组件中拾取的更改(HtmlInputText)从不介意将数据传递回表.
我的数据表代码如下(和jsf页面)
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<f:loadBundle basename="resources.application" var="msg"/>
<head>
<title><h:outputText value="#{msg.welcomeTitle}" /></title>
</head>
<body>
<h:form id="mainform">
<h:dataTable var="row" border="0" value="#{beanCategory.collection}" binding="#{beanCategory.datatable}">
<f:facet name="header">
<h:outputText value="Categories"/>
</f:facet>
<h:column>
<f:facet name="header">
<h:outputText value="Description"/>
</f:facet>
<h:inputText id="input1" value="#{row.description}" valueChangeListener="#{row.inputChanged}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Id"/>
</f:facet>
<h:outputText id="id" value="#{row.id}"/>
</h:column>
<h:column>
<h:commandButton value="Delete" type="submit" action="#{beanCategory.remove}">
<f:setPropertyActionListener target="#{beanCategory.selectedcategory}" value="#{row}"/>
</h:commandButton>
<h:commandButton value="Save" action="#{beanCategory.update}"
>
<f:setPropertyActionListener
target="#{beanCategory.selectedcategory}" value="#{row}" />
</h:commandButton>
</h:column>
</h:dataTable>
<h:inputText id="text1"></h:inputText> <h:commandButton action="#{beanCategory.addCategory}" value="Add" type="submit" id="submitbutton"> …Run Code Online (Sandbox Code Playgroud) 我真的需要用这些技术创建一个简单的项目,我已经知道如何在Eclipse中创建一个JSF 2项目.但我不知道如何插入hibernate并使其工作.我在Netbeans中知道但我想明确地改为Eclipse.
我在谷歌搜索但没什么可靠的.
任何铅,小费,将非常感激.
谢谢
我有一个init()函数,它返回填充数据表所需的Domaines列表,这个数据表的每一行都有两个命令链接,一个用于编辑,另一个用于删除,所以当我按下编辑命令链接时,一个对话框窗口显示Domaine有可能编辑的信息(还有另一个用于添加新域的对话框),所以问题是当我按下编辑时,调用init函数8次然后设置添加对话框的属性(即使之间没有关系)再次调用init函数4次后,编辑命令链接和添加对话框窗口.我不明白wh.这里是我的页面代码:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<ui:composition template="gpsiTemplate.xhtml">
<ui:define name="left-menu">
<ui:include src="admin-menuGauche.xhtml" />
</ui:define>
<ui:define name="top">
<ui:include src="menu-top.xhtml" />
</ui:define>
<ui:define name="content-top">
<center>
<f:view>
<h:form id="topacteurs">
<h:panelGrid columns="14" styleClass="adminTopTable" >
<h5 class="calendar">Direction :</h5>
<p:selectOneMenu id="typeacteurs" value="#{domaine.choixDirection}" style="width: 180px">
<f:selectItem itemLabel="Direction..." itemValue="" />
<f:selectItems value="#{direction.initcomb()}" var="ta" itemValue="#{ta.codeDirection}" itemLabel="#{ta.libelleDirection}" />
<p:ajax update=":mainform:domainlist" process="topacteurs" event="change" />
</p:selectOneMenu>
<p:spacer width="20" height="0" />
<p:commandButton title="Ajouter un domaine" …Run Code Online (Sandbox Code Playgroud) 我的问题是在我的主页上,我capacidade完全得到了变量.然后我有那个c:forEach和另一个名字的字段"nome".当我试图坚持,然后我capacidade填补了字段,但"nome"属性来了null.我看到如果我在他之前推他c:forEach,那它就有效了.但是我需要让他在c:forEach田野之后.
<s:decorate template="layout/form.xhtml">
<ui:define name="label">capacidade:</ui:define>
<h:inputText size="50" value="#{home.instance.capacidade}" maxlength="100" required="true" />
</s:decorate>
<a4j:outputPanel id="camposPresenca">
<c:forEach items="#{home.presencas}" var="presenca" varStatus="loop">
<s:decorate template="layout/form.xhtml">
<ui:define name="label">Presença #{loop.index + 1}</ui:define>
<rich:calendar enableManualInput="true" value="#{presenca.dataPresenca}" datePattern="dd/MM/yyyy" oninputblur="validarData(this);" required="true"/>
<h:inputText size="100" value="#{presenca.horarioPresenca}" maxlength="250" />
</s:decorate>
</c:forEach>
</a4j:outputPanel>
<s:decorate template="layout/form.xhtml">
<ui:define name="label">Nome:</ui:define>
<h:inputText size="50" value="#{home.instance.nome}" maxlength="100" required="true" />
Run Code Online (Sandbox Code Playgroud)
有人知道如何解决这个问题吗?
我有一个带有视图范围的托管bean.问题是,当我运行Web应用程序时,我有以下错误:
GRAVE: Error Rendering View[/login.xhtml]
java.io.NotSerializableException: org.postgresql.jdbc4.Jdbc4Connection
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source).........
Run Code Online (Sandbox Code Playgroud)
但是当我将范围更改为会话或请求时,一切正常.任何人都可以告诉我,如果我做错了什么?也许我忘记了配置或什么?
我有以下代码和平:
<DIV>
<h:commandLink action="#{documentGen.generatePDF}"
target="_blank"
onclick="return checkSelected();">
<h:graphicImage url="/images/pdf.jpg"
styleClass="pdfimage" title="Click to show PDF"></h:graphicImage>
</h:commandLink>
</DIV>
Run Code Online (Sandbox Code Playgroud)
上面的内容放在一个表中,用户可以勾选复选框并单击上面的commandLink,这意味着打开一个新窗口并显示backbean生成的内容 #{documentGen.generatePDF}.
如果我不包括,这可以按预期工作onclick="return checkSelected();".如果我包含它然后从不调用backbean,而是我得到一个新窗口,它是当前的重复.
我需要这个javascript函数来检查用户是否至少选中了1复选框,否则显示警告.Javascript函数工作正常,如果在单击commandLink时没有勾选复选框,我会看到警报.
我的问题是,为什么它会onclick搞乱commandLink的作用?我究竟做错了什么?
更新:
在h:commandLink里面h:form.如上所述,上面的命令链接按预期工作,没有onclick=.....
为了测试,我将onclick上调用的javascript函数更改为:
function testFunc() {
alert("GOT Here!")
return ture;
}
Run Code Online (Sandbox Code Playgroud)
并在命令链接中单击以: onclick="return testFunc();"
结果是我收到警告"GOT Here!" 但和以前一样,新窗口是当前窗口的副本,并且不会调用backbean.删除onclick行会更正结果(但需要使用javascript函数来检查已选中的复选框).
在浏览器源视图中,没有onclik和onclick的commandlink之间的区别如下:
<a href="#" onclick="return oamSubmitForm('genView','genView:_idJsp33','_blank',[]);" id="genView:_idJsp33" target="_blank"><img src="/images/pdf.jpg" title="Click for Pdf Document" class="pdfimage"></a>
<a href="#" onclick="return testFunc();;return oamSubmitForm('genView','genView:_idJsp33','_blank',[]);" id="genView:_idJsp33" target="_blank"><img src="/images/pdf.jpg" title="Click for Pdf Document" class="pdfimage"></a>
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.谢谢
在使用JSF来开发使用NetBeans的Web应用程序时,我曾多次注意到在某些情况下,JSF ManagedBeand中的getter方法(以及可能的setter)也会被执行多次,而它们只打算执行一次.在这种情况下,有时执行某些操作(特别是某些计算)的某些关键条件(如果等)以防止它们被淹没是非常关键的.我一直在努力了解其背后的实际原因,但我不能.
在这里,我演示了一个非常简单的应用程序,其中有一个getter方法
public Collection<entity.Country> getCountries(){};
Run Code Online (Sandbox Code Playgroud)
调用远程EJB并从MySql数据库中的相关表中检索所有国家/地区并在JSF页面上显示.网页的屏幕截图如下所示.
没有必要对屏幕截图,JSF页面代码及其相应的ManagedBean付出太多和特别的关注.

这是JSF页面代码
<?xml version='1.0' encoding='UTF-8' ?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>Countries</title>
</h:head>
<h:body>
<h:form>
<center><br/><br/><br/>
<h:dataTable id="dataTable" styleClass="table" frame="box" value="#
{country.countries}" var="row" bgcolor="lightyellow" border="7"
cellpadding="7" cellspacing="7" rules="all" width="50%" dir="ltr">
<f:facet id="header" name="header">
<h:outputText value="~:Country:~" styleClass="tableHeader"/>
</f:facet>
<h:column>
<f:facet name="header">Country ID</f:facet>
<h:outputText id="countryID" value="#{row.countryID}"/>
</h:column>
<h:column>
<f:facet name="header">Country Name :</f:facet>
<h:outputText id="countryName" value="#{row.countryName}"/>
</h:column>
</h:dataTable>
</center>
</h:form>
</h:body>
</html>
Run Code Online (Sandbox Code Playgroud)
相应的简单JSF ManagedBean代码就在这里.
package country;
import commonBean.CommomBeanRemote;
import java.util.Collection;
import javax.ejb.EJB; …Run Code Online (Sandbox Code Playgroud) 我正在使用我的JSF应用程序进行一些测试,当我在不同选项卡上的相同Web浏览器中尝试它时,在所有选项卡中最后一个会话都存在.
我怎么能阻止这个?