标签: facelets

使用JSF,MyFaces和Facelets迭代HashMap的麻烦

我在循环HashMap以将其值打印到屏幕上时遇到了一些麻烦.有人可以仔细检查我的代码,看看我做错了什么.我似乎找不到任何错误,但必须有一些东西.

在servlet中,我将以下内容添加到请求中:

Map<String, String> facetValues = new HashMap<String, String>();
// Filling the map
req.setAttribute(facetField.getName(), facetValues);
Run Code Online (Sandbox Code Playgroud)

在一种情况下,"facetField.getName()"评估为"纪律".所以在我的页面中我有以下内容:

<ui:repeat value="${requestScope.discipline}" var="item">
  <li>Item: <c:out value="${item}"/>, Key: <c:out value="${item.key}"/>, Value: <c:out value="${item.item}"/></li>
</ui:repeat>
Run Code Online (Sandbox Code Playgroud)

循环运行一次,但所有输出都是空白的?!?如果它已经超过循环一次,我至少会期望项目中的某些东西.检查Facelets的调试弹出窗口,纪律是在那里和循环.将它打印到屏幕会产生一些看起来像我的地图(我缩短了输出):

{300=0, 1600=0, 200=0, ... , 2200=0}
Run Code Online (Sandbox Code Playgroud)

我也尝试过ac:forEach,但我得到了相同的结果.所以有人有任何想法,我出错了吗?

谢谢你的任何意见,李

java jsf facelets myfaces

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

更好的<h:selectManyCheckbox>布局?

我有一个JSF页面.有一次,我有一个<h:selectManyCheckbox>显示许多项目.标签提供了2个属性,您可以设置这些属性来定义内容是水平显示还是垂直显示.然而,对于多个项目,两个选项看起来都很糟糕.水平走,一切都结束了.使用垂直方式,您可以使页面不必要地长.有没有办法让两全其美?例如,指定应该有x个列?假设我有20个项目,我想要4列.如果这个数字增加到100,我仍然只想要4列.然后该列表将垂直增长.

这可能吗?

java jsf facelets

3
推荐指数
1
解决办法
3583
查看次数

您是否真的不能在RichFaces中使用任何纯HTML?为什么?

有人可以指向我或解释是否属实,你不能在JSF或JSF库(如RichFaces)中使用普通的HTML标签吗?

我们在JBOSS服务器上使用JSF 1.2,RichFaces 3.3.3和Facelets.

有人对我说,我们只能使用<rich:><f:><a4j:>和他们所提供的组件.原因是JSF组件树会中断,您可能会有不需要的行为.或者在某些时候失去JSF树结构以及与之相关的功能.

我试图使用普通<h1>标签并被告知不使用它并使用<a4j:outputPanel>替代(渲染为a <div>)并将其设计为看起来像标题.

我很难相信这一点.

html java jsf richfaces facelets

3
推荐指数
1
解决办法
419
查看次数

JSF - 获取url参数并选择页面 - Servlet?

我需要使用客户端发送的参数来更改我的网站的上下文.

例如,如果我打电话给http://localhost:8084/JSF/我加载模板index.xhtml上的"主页"页面content(默认情况下).但是,如果我打电话http://localhost:8084/JSF/index.xhtml?page=profile,我需要一种切换index.xhtml,并在我的content区域中包含/插入配置文件模板(或定义配置文件的页面).

我想我需要管理一个servlet才能做到这一点,因为我不认为我可以在index.xhtml中创建一种swith.所以我认为我需要加载一些模板而不是另一个.

我需要使用哪个servlet?或者我需要创建自己的Servlet才能执行此操作?

干杯

更新(在BalusC的建议之后添加)

package Beans;

import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ManagedBean;

@ManagedBean(name="selector")
@ManagedProperty(value="#{param.page}")
public class Selector {
    private String page;

    public String getPage() {
        return page;
    }

    public void setPage(String page) {
        this.page = page;
    }

}
Run Code Online (Sandbox Code Playgroud)

template.xhtml

<?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:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html">

    <h:head>
        <title><ui:insert name="title">Facelets Template</ui:insert></title>
    </h:head>

    <h:body>
        <ui:insert name="login_homepage">Box Content Here</ui:insert>

        <ui:insert name="content_homepage">Box Content …
Run Code Online (Sandbox Code Playgroud)

jsf servlets facelets jsf-2

3
推荐指数
1
解决办法
9434
查看次数

是不赞成使用faces-config.xml还是JSF 2.0不需要?

通过文档,看起来像faces-config.xml是必需的.但是,由于某种原因,我认为Facelets使用了注释,因此不需要xml配置(?).他们说:

要将JavaServer Faces配置为使用Facelets作为ViewHandler,请修改项目的faces-config.xml以指定元素

似乎Facelets教程通常是死链接,或者像上面一样,很快就会死链接:(

xml jsf facelets jsf-2

3
推荐指数
1
解决办法
3556
查看次数

JSF 2 <f:selectItems>无法识别itemLabel和itemValue属性

我在Facelets页面中有以下下拉列表:

<h:selectOneMenu value="#{contactBean.selectedContact}" converter="#{contactConverter}">
    <f:selectItems value="#{contactsHolder.contacts}" var="contact"
    itemLabel="#{contact.firstName}" itemValue="#{contact}" />
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

问题是,无论我放入什么itemLabel(JSF EL表达式或纯文本),它都不会显示.知道我做错了什么吗?

这是ContactConverter:

@ManagedBean(name = "contactConverter")
@RequestScoped
public class ContactConverter implements Converter, Serializable {
    @ManagedProperty(value = "#{contactsHolder}")
    private ContactsHolder contactsHolder;

    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String value) {
        return contactsHolder.getContacts().get(value);
    }

    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {
        return ((Contact) value).getContactID();
    }
    //getter & setters...
}
Run Code Online (Sandbox Code Playgroud)

而且ContactsHolder:

@ManagedBean
@SessionScoped
public class ContactsHolder implements Serializable {
    private Map<String, Contact> …
Run Code Online (Sandbox Code Playgroud)

jsf facelets el jsf-2

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

JSF + JSON:在servlet中输出"plain"文本?

我正在尝试将Mootools(Request.JSON)与JSF一起使用 - 主要是因为我前段时间在CakePHP中编写了一个类似的应用程序,并希望重用大部分JS部分.

有没有办法使用像无标记facelet这样的请求返回纯文本("application/json")?

我想出的唯一解决方案是使用HttpServlet并将其注册到web.xml中的服务URL.这种方法可以正常返回一个没有任何标记的文件,但我更倾向于使用我注入Spring的ManagedProperties,而不是仅限于WebApplicationContextUtils.

我错过了什么或是推荐的方式吗?

javascript jsf json facelets

3
推荐指数
1
解决办法
2956
查看次数

facelets ui:fragment忽略渲染属性

我对这段代码有一种非常奇怪的行为:

<ui:fragment rendered="#{price.guestIdTrue}">
<b>PRICE_GUEST_ID_TRUE : #{price.guestIdTrue}</b>
    <h:outputText>#{Global.guestTypeMap[price.guestId]}&#160;#{price.guestIndex}</h:outputText>
</ui:fragment>
Run Code Online (Sandbox Code Playgroud)

即使渲染条件为假,也是如此

PRICE_GUEST_ID_TRUE:false 1

1是#{price.guestIndex}

ui名称空间已正确定义,并且适用于其他facelets.

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:t="http://myfaces.apache.org/tomahawk">
Run Code Online (Sandbox Code Playgroud)

什么发生的想法.

提前致谢.

jsf facelets primefaces jsf-2

3
推荐指数
1
解决办法
4503
查看次数

什么充当JSF/Facelets中的CONTROLLER,像servlet一样充当JSP中的控制器?

当我们在这里使用JSP和servelt开发web应用程序时,servlet充当CONTROLLER(从MVC角度来看).那么当我使用JSF和Facelets开发Web应用程序时,什么充当控制器......

它是与JSF相关的东西 - 请求调度程序servlet - httprequest httpresponse

或者我完全错了.

java model-view-controller jsf servlets facelets

3
推荐指数
1
解决办法
5524
查看次数

JSF 2.0导航系统不使用.jsp扩展名

我已经将JSF2.0用于自动导航系统.我有一个简单的登录页面,当我点击登录按钮时,相应的Bean类的方法已经调用但是当我改变时它不会导航到home.jsp页面从.jsp到xhtml的扩展然后它工作..jsp扩展名有什么问题.

LoginBean.java

public class LoginBean implements Serializable {
private static final long serialVersionUID = 1L;
private String uname;
private String password;


public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

public String getUname() {
    return uname;
}

public void setUname(String uname) {
    this.uname = uname;
}

public String loginProject() {
     System.out.println("hello i am called ");
     System.out.println(uname);
     System.out.println(password);
        return "home";
    }
}
Run Code Online (Sandbox Code Playgroud)

===============
login.xhtml

    <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:p="http://primefaces.org/ui">
<h:head>
    <title>Colonial Inn</title>
</h:head> …
Run Code Online (Sandbox Code Playgroud)

jsf jsp facelets jsf-2

3
推荐指数
1
解决办法
205
查看次数