一直试着学习JSF,有时候我看到的URL *.jsf有时是*.xhtml或者/faces/*.请问有人填写我的知识吗?当我使用Facelet创建JSF时,文件扩展名是.xhtml,所以.jsfURL扩展来自哪里?
我正在使用带有facelets的JSF,我需要在JSF页面中获取请求和会话参数.在JSP页面中,我得到了这样的参数:"${requestScope.paramName}"或"${sessionScope.paramName}".但是现在使用JSF之后只有bean,除了bean属性之外你无法获得任何值.
注意:会话属性我需要使用acegi安全性自动填充,因此我无法访问它们.
那现在该怎么办?
我已经完成了关于Facelets模板的教程.
现在我尝试创建一个与模板不在同一目录中的页面.我有页面样式的问题,因为样式用相对路径引用,如下所示:
<link rel="stylesheet" href="style_resource_path.css" />
Run Code Online (Sandbox Code Playgroud)
我可以通过以下开头使用绝对引用/:
<link rel="stylesheet" href="/project_root_path/style_resource_path.css" />
Run Code Online (Sandbox Code Playgroud)
但是,当我将应用程序移动到不同的环境时,这将给我带来麻烦.
所以我想知道在Facelets中引用CSS(以及JS和图像)资源的最佳方法是什么?
我看到了一些使用.jsp扩展创建JSF页面的示例,其他示例使用.xhtml扩展创建它们,其他示例选择.jsf.我只是想知道在使用JSF页面时上述扩展之间的区别是什么,以及如何选择适当的扩展名?
如何使用facelets在JSF(1.2)标签的.xhtml页面中激活eclipse(3.5,WTP)内容?它适用于.jsp文件,但不适用于xhtml.
我谷歌很多,并且在很多地方(包括MyFaces wiki)都说 - "Eclipse无法使用xhtml和facelets"
由于这适用于.jsp文件,我假设可能有一些机制可用于激活该内容辅助.
我开始研究一个已经拥有大量代码库的项目,因此不能选择更改扩展名.额外的插件也是不受欢迎的,但如果没有其他工作可以接受.
(我问的问题是验证某人是否没有找到这个问题的诙谐解决方法 - 否则我知道这是不可能的)
我不确定使用<f:view>和有什么好处<f:subview>.我注意到可以在不使用它们的情况下编写JSF页面.
使用这些标签有什么好处?
我一直在使用JSF处理一个简单的Java EE项目.
<h:form id="phoneForm">
<h:dataTable id="phoneTable">
</h:dataTable>
</h:form>
Run Code Online (Sandbox Code Playgroud)
我试图通过设置CSS #phoneTable { ... },但它不起作用.在客户端检查HTML源代码时,JSF生成的HTML表格似乎以形式获取客户端ID id="phoneForm:phoneTable".我无法应用CSS via #phoneForm:phoneTable { ... },因为冒号表示伪选择器的开始并导致错误.
我怎么能在CSS选择器中使用它呢?
在我的JSF/Facelets应用程序中,这是我表单的一部分的简化版本:
<h:form id="myform">
<h:inputSecret value="#{createNewPassword.newPassword1}" id="newPassword1" />
<h:message class="error" for="newPassword1" />
<h:inputSecret value="#{createNewPassword.newPassword2}" id="newPassword2" />
<h:message class="error" for="newPassword2" />
<h:commandButton value="Continue" action="#{createNewPassword.continueButton}" />
</h:form>
Run Code Online (Sandbox Code Playgroud)
我希望能够根据continueButton()方法中发生的事情为特定的h:message标记分配错误.需要为newPassword和newPassword2显示不同的错误.验证器不会真正起作用,因为将传递结果的方法(来自DB)在continueButton()方法中运行,并且运行两次太昂贵.
我无法使用h:messages标记,因为该页面有多个地方需要显示不同的错误消息.当我尝试这个时,页面显示每条消息的重复.
我试过这个是最好的猜测,但没有运气:
public Navigation continueButton() {
...
expensiveMethod();
if(...) {
FacesContext.getCurrentInstance().addMessage("newPassword", new FacesMessage("Error: Your password is NOT strong enough."));
}
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么?任何帮助,将不胜感激!
我正在使用JSF开发Web应用程序.我测试了它,因为我能够但不时抛出运行时异常.
那么,每次抛出异常时如何将用户重定向到特殊错误页面(而不是显示完整tomcat日志的500错误)?
我需要为属性写一个EL表达式,如下所示:
#{cc.attrs.appreciatedByCurrentUser ? (cc.attrs.count +'<br/>'+ (cc.attrs.count-1)) : ((cc.attrs.count+1) +'<br/>'+ cc.attrs.count)}
Run Code Online (Sandbox Code Playgroud)
现在的问题是,这会产生错误,因为字符串无法连接,就像我这样做.那我怎么能纠正这个呢?
我正在使用带有facelets的JSF 2.0.
我正在使用以下内联JavaScript解决问题
<script type="text/javascript">
var count=#{cc.attrs.count};
document.write(#{cc.attrs.appreciatedByCurrentUser} ? (count-1) +'<br/>'+count : count+'<br/>'+ (count+1));
</script>
Run Code Online (Sandbox Code Playgroud)
你能想到这个问题吗?