昨天我看到了一个关于Java Server Faces 2.0的演示文稿,虽然我现在是一个快乐的ASP.NET MVC/jQuery开发人员,但它看起来确实令人印象深刻.我最喜欢JSF的是大量支持AJAX的UI组件,这些组件似乎比ASP.NET MVC更快,特别是在AJAX重型站点上.集成测试看起来也很不错.
由于演示文稿只强调了JSF的优点,我也想听听另一方面的意见.
所以我的问题是:
在使用html5时,这行代码不应该使用占位符文本"填充我"来呈现inputtext字段吗?
<h:inputText placeholder="fill me" />
Run Code Online (Sandbox Code Playgroud)
我没有看到任何占位符文字.我认为那些不是JSF的东西都被传递给了浏览器进行渲染?
在阅读了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?
我想使用新的HTML5 <input type="date">
并将其值绑定到托管bean:
<input type="date" value="#{bean.date}"/>
Run Code Online (Sandbox Code Playgroud)
我想这样做,因为我比PrimeFaces提供的更喜欢这个.
我怎样才能做到这一点?
我与一个JSF团队合作进行前端开发.我们正在输出一个INPUT字段,我需要在渲染的标签中包含placeholder
一些data-
属性.然而,JSF正在剥离它们.我不知道JSF对JSF团队有多大帮助,但我想我至少可以问一下.
我们使用的是旧版本的JSF,但升级到2.0,因为它似乎支持HTML5.那不是这样吗?有没有一种已知的解决方法?
我在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标记上指定传递属性,以便忽略它们?
我在一个不同的问题中询问了传递属性,发现我可以为<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 =属性这个)电话号码:自动完成?).
我正在使用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有效.有谁知道为什么会这样?
我正在尝试使用如下所示的片段来实现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)
这是陷阱:
a
标签需要具有非标准count-layout="horizontal"
属性现在我的问题是:
所需的标记可以在http://pinterest.com/about/goodies/上找到"网站的pin it按钮"部分.
我正在使用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>
部件,但是当我点击上传按钮的事件仅触发(但后来为时已晚)
有人有建议吗?
有没有办法在 JSF2 组件中使用引导相关的标签?例如,我对使用引导预输入功能感兴趣,该功能需要类似的东西
<h:inputText id="typeahead" type="text" data-provide="typeahead"></h:inputText>
Run Code Online (Sandbox Code Playgroud)
但由于它data-provide
不存在,所以h:inputText
它被删除了,所以预输入功能显然不起作用。
jsf ×9
jsf-2 ×6
html5 ×4
primefaces ×4
facelets ×2
html ×2
asp.net-mvc ×1
file-upload ×1
netbeans ×1
pinterest ×1
placeholder ×1
servlet-3.0 ×1
xhtml ×1