相关疑难解决方法(0)

Java Server Faces 2.0的主要缺点是什么?

昨天我看到了一个关于Java Server Faces 2.0的演示文稿,虽然我现在是一个快乐的ASP.NET MVC/jQuery开发人员,但它看起来确实令人印象深刻.我最喜欢JSF的是大量支持AJAX的UI组件,这些组件似乎比ASP.NET MVC更快,特别是在AJAX重型站点上.集成测试看起来也很不错.

由于演示文稿只强调了JSF的优点,我也想听听另一方面的意见.

所以我的问题是:

  • Java Server Faces 2.0的主要缺点是什么?
  • 什么可能使JSF开发人员考虑使用ASP.NET MVC而不是JSF?

asp.net-mvc jsf jsf-2

233
推荐指数
10
解决办法
7万
查看次数

如何将占位符属性添加到JSF输入组件?

在使用html5时,这行代码不应该使用占位符文本"填充我"来呈现inputtext字段吗?

<h:inputText placeholder="fill me" />
Run Code Online (Sandbox Code Playgroud)

我没有看到任何占位符文字.我认为那些不是JSF的东西都被传递给了浏览器进行渲染?

jsf placeholder

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

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万
查看次数

是否可以将HTML5组件(<input type ="date">)绑定到托管Bean属性?

我想使用新的HTML5 <input type="date">并将其值绑定到托管bean:

<input type="date" value="#{bean.date}"/>
Run Code Online (Sandbox Code Playgroud)

我想这样做,因为我比PrimeFaces提供的更喜欢这个.

我怎样才能做到这一点?

jsf html5 jsf-2

12
推荐指数
1
解决办法
7480
查看次数

JSF 2.0删除了所需的HTML5属性

我与一个JSF团队合作进行前端开发.我们正在输出一个INPUT字段,我需要在渲染的标签中包含placeholder一些data-属性.然而,JSF正在剥离它们.我不知道JSF对JSF团队有多大帮助,但我想我至少可以问一下.

我们使用的是旧版本的JSF,但升级到2.0,因为它似乎支持HTML5.那不是这样吗?有没有一种已知的解决方法?

html jsf html5

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

如何让JSF传递HTML属性

我在JSF 2中使用Primefaces 3来制作搜索框.我需要向控件添加一个非标准属性(x-webkit-speech),这样你就会有这样的东西......

<p:autoComplete x-webkit-speech="x-webkit-speech" ... />
Run Code Online (Sandbox Code Playgroud)

由于此属性不是autoComplete控件的一部分,因此JSF给出了500错误.但是当我删除它时,页面渲染得很好.通常,如何在JSF标记上指定传递属性,以便忽略它们?

html jsf primefaces servlet-3.0 jsf-2

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

将自定义属性添加到JSF中的Primefaces自动完成组件

我在一个不同的问题中询问了传递属性,发现我可以为<p:autocomplete>组件创建一个自定义渲染器,但问题是我的自定义渲染器将用于我项目中的每个p:autocomplete(站点范围).因此,我选择创建一个自定义组件,该组件扩展org.primefaces.component.autocomplete.AutoComplete并向文本框添加必要的属性.

我最初的想法是添加一个构造函数,但它似乎不起作用,因为此时属性map为null:

@FacesComponent("com.mycomponents.SiteSearch")
public class SiteSearch extends AutoComplete {

    public SiteSearch() {
        Map<String,Object> attrs = getAttributes();
        attrs.put("x-webkit-speech", null); 
        attrs.put("x-webkit-grammer", "builtin:search");
        attrs.put("onwebkitspeechchange", "this.form.submit();");
        attrs.put("placeholder", "Enter a Search Term");
    }   
}
Run Code Online (Sandbox Code Playgroud)

我的另一个想法是将此自定义组件留空(空类),然后指定一个自定义渲染器,用于扩展org.primefaces.component.autocomplete.AutoCompleteRenderer和修改那里的属性.

毕竟说完了之后,我只需要一种方法将这些属性与这一个文本框分开,这样只需在p:autoComplete上放一个自定义渲染器就行不通了(除非我可以使用renderType =属性这个)电话号码:自动完成?).

jsf custom-component primefaces jsf-2

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

InputText PrimeFaces不应用maxlength

我正在使用PrimeFaces 3.4和PrimeFaces Mobile 0.9.3.我在inputText属性中指定了maxlength,但它没有在HTML中呈现.我的代码:

<p:inputText id="price" value="#{bean.price}" styleClass="r-align" 
type="number" maxlength="9" validator="priceValidator"/>
Run Code Online (Sandbox Code Playgroud)

后来我发现当我从标签中删除"type"属性时,max length有效.有谁知道为什么会这样?

html5 primefaces jsf-2 primefaces-mobile

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

如何渲染<h:outputLink>的自定义属性?

我正在尝试使用如下所示的片段来实现pinterest的pinit按钮:

<h:outputLink value="http://pinterest.com/pin/create/button/" class="pin-it-button" count-layout="horizontal">
   <f:param name="url" value="#{beanOne.someMethod}/sometext{prettyContext.requestURL.toURL()}"/>
   <f:param name="media" value="#{beanOne.someOtherMethod}/sometext/somemoretext/#{beanTwo.someMethodTwo}-some-text.jpg"/>
   <f:param name="description" value="#{beanTwo.someOtherMethodTwo}"/>
   <img border="0" src="//assets.pinterest.com/images/PinExt.png" title="Pin It" />
</h:outputLink>
Run Code Online (Sandbox Code Playgroud)

这是陷阱:

  • 整个标记是从两个不同bean的四种不同方法的组合以及一些静态文本创建的
  • url参数显然需要urlencoded,因此我在h:outputLink中使用f:param以便它们获得urlencoded
  • 生成的a标签需要具有非标准count-layout="horizontal"属性

现在我的问题是:

  • 如何将count-layout属性注入h:outputLink或生成的锚标记
  • 否则,如果我不能,那么另一种非侵入性(我不想改变bean方法)的方法来完成所需的pinit按钮标记?

所需的标记可以在http://pinterest.com/about/goodies/上找到"网站的pin it按钮"部分.

jsf facelets pinterest

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

检查是否在p:fileUpload中选择了一个文件

我正在使用PrimeFaces的简单fileUpload和自定义提交按钮,如下所示:

<h:form enctype="multipart/form-data">

    <p:fileUpload value="#{fileController.file}"
                  mode="simple"
                  skinSimple="true"
                  label="choose file"/>

    <p:commandButton value="upload"
                     ajax="false"
                     label="upload"
                     icon="fa fa-upload"
                     actionListener="#{fileController.upload}"/>
</h:form>
Run Code Online (Sandbox Code Playgroud)

在backing bean中,file是一个类型的属性UploadedFile.

现在我想要upload在没有选择文件的情况下禁用该按钮,但是我无法获得信息,无论用户是否选择了文件,file属性都会保留,null直到upload单击该按钮为止.我试过valueChangeListener的上<p:fileUpload>部件,但是当我点击上传按钮的事件仅触发(但后来为时已晚)

有人有建议吗?

jsf file-upload primefaces

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

在 JSF2 h:inputText 组件中使用 bootstrap 相关标签

有没有办法在 JSF2 组件中使用引导相关的标签?例如,我对使用引导预输入功能感兴趣,该功能需要类似的东西

<h:inputText id="typeahead" type="text" data-provide="typeahead"></h:inputText>
Run Code Online (Sandbox Code Playgroud)

但由于它data-provide不存在,所以h:inputText它被删除了,所以预输入功能显然不起作用。

jsf-2 twitter-bootstrap

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