标签: jsf

如何在Facelets中的EL布尔表达式中使用&&?

我在Facelets中弄清楚如何处理EL表达式时遇到了一些麻烦.基本上我有:

<h:outputText id="Prompt"
    value="Fobar" 
    rendered="#{beanA.prompt == true && beanB.currentBase !=null}" />
Run Code Online (Sandbox Code Playgroud)

但我一直在:

错误跟踪[第69行]实体名称必须紧跟实体引用中的"&".

jsf facelets el

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

如何插入非破坏空格字符&nbsp; 在JSF页面?

如何在JSF页面中插入非破坏空格字符,就像我可以在HTML中使用&nbsp;?JSF中有这样的标签吗?

jsf facelets

79
推荐指数
5
解决办法
10万
查看次数

验证错误:值无效

我有一个ap:selectOneMenu的问题,无论我做什么我都无法让JSF调用JPA实体上的setter.JSF验证失败,显示以下消息:

form:location:验证错误:值无效

我有这个工作在几个相同类型的其他类(即,连接表类),但不能为我的生活让这一个工作.

如果有人可以针对此类问题提出一些故障排除/调试技巧,我们将不胜感激.

使用日志语句我已经验证了以下内容:

  1. Conveter将返回正确的,非null数值.
  2. 我的JPA实体中没有Bean验证.
  3. setLocation(Location location)永远不会调用setter .

这是我能做的最简单的例子,它根本不起作用:

<h:body>
    <h:form id="form">
        <p:messages id="messages" autoUpdate="true" />
        <p:selectOneMenu id="location" value="#{locationStockList.selected.location}" converter="locationConverter">
            <p:ajax event="change" update=":form:lblLocation"/>
            <f:selectItems value="#{locationStockList.locationSelection}"/>
        </p:selectOneMenu>
    </h:form>
</h:body>
Run Code Online (Sandbox Code Playgroud)

转换器:

@FacesConverter(forClass=Location.class, value="locationConverter")
public class LocationConverter implements Converter, Serializable {
    private static final Logger logger = Logger.getLogger(LocationConverter.class.getName());

    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String value) {
        if (value.isEmpty())
            return null;
        try {
            Long id = Long.parseLong(value);
            Location location = ((LocationManagedBean) context.getApplication().getELResolver().getValue(context.getELContext(), null, "location")).find(id);
            logger.log(Level.SEVERE, …
Run Code Online (Sandbox Code Playgroud)

validation jsf jpa converter selectonemenu

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

有条件地显示JSF组件

首先,我是Java EE的新手,来自强大的ASP .NET开发背景.我已经浏览了网络,我可能会错过这个,但似乎没有关于如何将支持bean类连接到JSF组件的简单直接的教程.

一个很好的例子是这样的,目前我正在尝试创建一个JSF页面,其中有一组链接作为菜单栏和一组表单.我打算做的是,当点击一个链接时,将呈现一个特定的表单.

在ASP.NET中,我可以轻松检索元素,然后将属性设置为可显示.我想知道在JSF中是否有简单的方法(哎呀,甚至任何方式).

表单已经在页面中,只需在单击特定链接时将"render"属性设置为true即可.

jsf components conditional-rendering

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

"绑定"属性如何在JSF中起作用?应该何时以及如何使用?

在JSF中有很多材料区分value属性和binding属性.

我对这两种方法如何彼此不同感兴趣.鉴于:

public class User {
    private String name;
    private UICommand link;

    // Getters and setters omitted.
}
Run Code Online (Sandbox Code Playgroud)
<h:form>
    <h:commandLink binding="#{user.link}" value="#{user.name}" />
</h:form>
Run Code Online (Sandbox Code Playgroud)

value指定属性时会发生什么变化.getter运行以返回bean 的name属性值User.该值将打印到HTML输出.

但我无法理解它是如何binding运作的.生成的HTML如何维护与bean link属性的绑定User

下面是手动美化和注释后生成的输出的相关部分(注意id j_id_jsp_1847466274_1是自动生成的,并且有两个隐藏的输入小部件).我正在使用Sun的JSF RI 1.2版.

<form action="/TestJSF/main.jsf" enctype="application/x-www-form-urlencoded"
    id="j_id_jsp_1847466274_1" method="post"  name="j_id_jsp_1847466274_1">
    <input name="j_id_jsp_1847466274_1" type="hidden" value="j_id_jsp_1847466274_1">
    <a href="#" onclick="...">Name</a>
    <input autocomplete="off" id="javax.faces.ViewState" name="javax.faces.ViewState"
        type="hidden" value="-908991273579182886:-7278326187282654551">
</form>
Run Code Online (Sandbox Code Playgroud)

在哪里binding存放在这里?

jsf binding components jsf-2

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

实体名称必须紧跟实体引用中的"&"

我想在我的*.xhtml页面上放一个打包游戏.(我使用的是jsf 2和primefaces 3.5)

然而,

当我在xhtml中"翻译"html页面时,我在此脚本中收到错误:

    <script>

    var el = document.getElementById("pacman");

    if (Modernizr.canvas && Modernizr.localstorage && 
        Modernizr.audio && (Modernizr.audio.ogg || Modernizr.audio.mp3)) {
      window.setTimeout(function () { PACMAN.init(el, "./"); }, 0);
    } else { 
      el.innerHTML = "Sorry, needs a decent browser<br /><small>" + 
        "(firefox 3.6+, Chrome 4+, Opera 10+ and Safari 4+)</small>";
    }
  </script>
Run Code Online (Sandbox Code Playgroud)

在线:

if (Modernizr.canvas && Modernizr.localstorage && 
Run Code Online (Sandbox Code Playgroud)

我得到:

实体名称必须紧跟实体引用中的"&".

知道怎么解决这个问题吗?

javascript xml xhtml jsf facelets

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

Spring MVC vs JSF

我在过去的所有应用程序和新应用程序中都使用过Struts框架,我的客户端要求使用Spring MVC或JSF吗?我不熟悉这两个框架,但我们的时间表是严格的.所以,我不确定我将选择构建应用程序的框架.

任何人都可以建议我在快速时间内容易学习哪个框架?

谢谢

java jsf spring-mvc

69
推荐指数
5
解决办法
9万
查看次数

如何从数据库中填充h:selectOneMenu的选项?

我正在创建一个Web应用程序,您必须从DB中读取对象/实体列表并在JSF中填充它<h:selectOneMenu>.我无法对此进行编码.有人可以告诉我该怎么做吗?

我知道如何List<User>从数据库中获取数据.我需要知道的是,如何填充此列表<h:selectOneMenu>.

<h:selectOneMenu value="#{bean.name}">
    ...?
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

database jsf selectonemenu

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

h:button和h:commandButton之间的区别

在JSF 2中,h:button和之间有什么区别h:commandButton

jsf button jsf-2

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

如何获得基本URL?

我有这个结构:

WebContent
    resources
        components
            top.xhtml

    company
        about_us.xhtml

    index.xhtml
Run Code Online (Sandbox Code Playgroud)

top.xhtml是一个组件,即在使用index.xthmlabout_us.xhtml太.

top.xhtml

<ul>
    <li><a href="index.xhtml">Home</a></li>
    <li><a href="company/about_us.xhtml">About us</a></li>
    ...
</ul>
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,当当前页面是index.xhtml组件正确生成URL时,但当当前页面时about_us.xhtml,它会生成错误的URL.我不能使用相对路径,因为它也会生成错误的URL.我认为这是因为组件基于*.xhtml页面的当前路径.

我能找到的唯一解决方案是:

<ul>
    <li><a href="${pageContext.request.contextPath}/webname/index.xhtml">Home</a></li>
    <li><a href="${pageContext.request.contextPath}/webname/about_us.xhtml">About us</a></li>
    ...
</ul>
Run Code Online (Sandbox Code Playgroud)

但我认为根本不是"优雅".有任何想法吗?

java jsf jsf-2

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