标签: facelets

解析XHTML时出错:元素的内容必须由格式良好的字符数据或标记组成

作为这个问题的扩展,我试图将Javascript插入到已经呈现ajax表<h:commandButton />onclick属性action中.

我想做什么:在列表框中获取所选项目并将其转换为要在JSF中使用的参数FileServlet.即para2=value1&param=value2&param=value3

这就是我所拥有的:

<script type ="text/javascript">
function myScript() {
    var box = document.getElementbyId('myForm:box');
    var length = box.options.length;
    var paramstring = "";
    for (var i = 0; i < length; i++) {
        if (i != (length - 1) {
            if (box.options[i].selected) {
                paramstring = paramstring + "param=" + box.options[i].value + "&amp;";
            }
        } else {
            paramstring = paramstring + "param=" + box.options[i].value;
        }
    }
    if (document.getElementById('myForm:checkbox').checked) {
        window.location='fileServlet? + …
Run Code Online (Sandbox Code Playgroud)

javascript xhtml jsf facelets jsf-2

38
推荐指数
3
解决办法
11万
查看次数

Facelets重复标记索引

有没有人知道在ui:repeat facelets标签中获取元素索引的方法?

<ui:repeat id="topTenGrd" var="dream" value="#{dreamModifyBean.topDreams}">
    <h:outputText class="dream-title uppercase" value="#{dream.number}. #{dream.title}" />
</ui:repeat>
Run Code Online (Sandbox Code Playgroud)

jsf facelets jsf-2

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

如何通过导航菜单ajax-refresh动态包含内容?(JSF SPA)

我正在学习JSF 2,感谢我在这么短的时间里学到了很多东西.

我的问题是关于如何为我的所有JSF 2页面实现一个公共布局,并且每当我从另一个面板单击一个链接/菜单时,只有页面的内容部分不刷新整个页面.我使用Facelets方法它做了我想做的事情,除了每次我点击一个面板的链接(例如左面板的菜单项)时,整个页面都会刷新.我正在寻找的是一种只刷新页面内容部分的方法.为了说明这一点,我的目标是pagelayout.

在此输入图像描述 没有发布我的代码,因为我不确定Facelets是否可以这样做.除了Facelets之外,还有其他方法更适合我的要求吗?

jsf facelets uiinclude single-page-application ajax-update

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

为什么Facelets比JSF2.0以后的视图定义语言更优先于JSP?

我从JSF2.0开始看到,Facelets视图定义语言是首选的视图定义语言,而不是作为遗留后退而被弃用的JSP.我想理解为什么Facelets比JSF2.0以后的视图定义语言更优先于JSP?我知道JSP也有一些模板行为,这是采用Facelets的主要驱动点.

PS:我在stackoverflow上经历过这篇文章,但我不认为它回答了我的问题.因此将此作为单独的问题发布.

jsf jsp facelets jsf-2

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

为什么@PostConstruct回调每次都会触发,即使bean是@ViewScoped?JSF

我在页面上使用datatable并使用绑定属性将其绑定到我的支持bean.这是我的代码: -

<?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">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
            <h:form prependId="false">

                <h:dataTable var="item" value="#{testBean.stringCollection}" binding="#{testBean.dataTable}">
                    <h:column>
                        <h:outputText value="#{item}"/>
                    </h:column>
                    <h:column>
                        <h:commandButton value="Click" actionListener="#{testBean.action}"/>
                    </h:column>
                </h:dataTable>

            </h:form>

    </h:body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是我的豆子: -

package managedBeans;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.component.html.HtmlDataTable;

@ManagedBean(name="testBean")
@ViewScoped
public class testBean implements Serializable {

    private List<String> stringCollection;

    public List<String> getStringCollection() {
        return stringCollection;
    }

    public void …
Run Code Online (Sandbox Code Playgroud)

jsf facelets postconstruct view-scope

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

当我想要ajax-update时,为什么我需要在另一个组件中嵌入一个带有render ="#{some}"的组件?

所以我找到了一些接近这个的答案,我发现足以解决我遇到的问题.但即使这样,我也很好奇了解这方面的运作方式.让我用一个例子来说明:

我有一个.xhtml看起来像这样(缩短)的facelet 页面.

<h:form id="resultForm">

    <h:panelGroup class="search_form" layout="block">
        <h:inputText id="lastname" value="#{search.lastname}"/>
        <h:commandButton action="#{search.find}" value="Find">
            <f:ajax execute="lastname" render="resultDisplay"/>
        </h:commandButton>
    </h:panelGroup>

    <h:dataTable value="#{search.searchResults}" var="results" id="resultDisplay"
            rendered="#{!empty search.searchResults}">  
        <h:column>
            #{results.field}
        </h:column>
    </h:dataTable>

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

现在,为了突破性,我不会发布所有的支持bean代码,但我有这样的东西:

public void find() {
    searchResults = setResults(true);
}
Run Code Online (Sandbox Code Playgroud)

哪里searchResultsArrayList<Objects>.在搜索之后,它不是null - 在多个测试中检查(可以为null,但不在我正在进行的测试中).

现在.这不起作用.

但是,如果我将dataTable内部嵌套在另一个内部panelGroup,那么它会起作用.

<h:panelGroup id="resultDisplay">
    <h:dataTable value="#{search.searchResults}" var="results"
        rendered="#{!empty search.searchResults}">  
        <h:column>
            #{results.field}
        </h:column>
    </h:dataTable>
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)

现在,这种变化可以让一切正常.我对此感到满意......但我想我也在寻求一些理解.有关为什么我必须嵌套这些组件的任何见解?我肯定错过了一些东西!

jsf facelets jsf-2 conditional-rendering ajax-update

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

启用选择时,DataModel必须实现org.primefaces.model.SelectableDataModel.

我正在尝试使用多行选择创建一个DataTable,但是我在这里得到一个错误是http://www.primefaces.org/showcase/ui/datatableRowSelectionMultiple.jsf教程的链接:

这是我的xhtml:

    <p:dataTable border="1" value="#{projectAdminisrationMB.projectNoUsersList}" 
                     var="userObj"
                     selection="#  
         {projectAdminisrationMB.selectedUsers}"
 selectionMode="multiple" rowIndexVar="rowIndex"binding="#{table2}">
<p:column id="column3">
<f:facet name="header">
<h:outputText value=" user "></h:outputText>
</f:facet>

      <h:outputText value="#{userObj.name}"/>  

                            /
  <h:outputText value="#{userObj.lastName}"></h:outputText>

  &nbsp;
   <h:outputText value="#{userObj.firstName}"></h:outputText>
  </p:column>

    <f:facet name="footer">  
     <p:commandButton id="addProjectUser" value=" Add " onclick="dlg1.show()" />  
      <p:commandButton id="deleteProjectUser" value=" Delete " />  

    </f:facet> 

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

托管Bean:

 @ManagedBean
 @SessionScoped
 public class ProjectAdminisrationMB implements Serializable {

private static final long serialVersionUID = 1L;

private String projectName;
private List <User> projectUsersList;
private List<User> projectNoUsersList;
private List<User> selectedUsers;

private String projectAdmin;


public …
Run Code Online (Sandbox Code Playgroud)

jsf facelets primefaces

32
推荐指数
3
解决办法
8万
查看次数

我应该使用Facelets"jsfc"属性吗?

Facelets使用jsfc属性将HTML元素转换为其关联的JSF组件.这对于快速原型设计非常有用,因为它允许您使用可视化设计工具创建视图.然而,我最近发现了Cay Horstmann的这篇博客文章,他将jsfc与复杂组件(如h:dataTable)的使用浪费在一起.

这让我感到震惊,因为Cay Horstmann是我最喜欢的多本Java书籍的作者.然而,在尝试确定问题的范围/性质时,我的Google-fu技能已经取得了零结果,除了Ed Burns最近的帖子,他接近喜欢jsfc(并且他是JSF的所有联合规范领导者) .所以我的问题很简单,是否建议将jsfc与Facelets 一起使用?如果不是它引入的问题是什么.

java jsf facelets

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

如何删除Facelets中的HTML注释?

我希望在交付给最终用户之前从我的facelets中删除所有HTML注释.是否存在任何标准方法?

java jsf comments facelets

27
推荐指数
1
解决办法
5104
查看次数

JSF和自动重载xhtml文件

我使用JRebel,Spring,JSF Mojarra 2.0.3和WebLogic 10.3热重新加载XHTML文件时遇到了一些问题.

JRebel成功地在/ WebContent下重新加载常规Java类和js/css文件,但不重载JSF的.xhtml文件.需要完整的重新发布才能在服务器上更新xhtml文件.

通过反复试验,我终于通过向web.xml添加一些facelets参数并创建自定义ResourceResolver来实现它,如本博文中所述.

但是,我想知道为什么这有效,更具体地说:

  • 为什么需要自定义ResourceResolver?
  • 是不是JRebel应该通过监视xhtml文件所在的/ WebContent来处理这个问题?
  • 我猜它与Facelets/JSF通过FacesServlet编译xhtml到servlets(?)有什么关系,JRebel无法检测到它?

java jsf facelets mojarra jrebel

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