是什么区别action和actionListener,什么时候应该使用action与actionListener?
我注意到有不同的bean范围,如:
@RequestScoped
@ViewScoped
@FlowScoped
@SessionScoped
@ApplicationScoped
Run Code Online (Sandbox Code Playgroud)
每个人的目的是什么?如何为我的bean选择合适的范围?
究竟是什么process,并update在PrimeFaces p:commandXxx组件和execute和render的f:ajax标签?
哪个在验证时有效?什么是update属性做,而不是更新的值从后端组件?不要process属性绑定值模型?究竟是什么@this,@parent,@all并@form在这两个属性?
下面的例子工作正常,但我对基本概念有点困惑.
<p:commandButton process="@parent"
update="@form"
action="#{bean.submit}"
value="Submit" />
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用PrimeFaces上传文件,但fileUploadListener上传完成后不会调用该方法.
这是观点:
<h:form>
<p:fileUpload fileUploadListener="#{fileUploadController.handleFileUpload}"
mode="advanced"
update="messages"
sizeLimit="100000"
allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/>
<p:growl id="messages" showDetail="true"/>
</h:form>
Run Code Online (Sandbox Code Playgroud)
还有豆子:
@ManagedBean
@RequestScoped
public class FileUploadController {
public void handleFileUpload(FileUploadEvent event) {
FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded.");
FacesContext.getCurrentInstance().addMessage(null, msg);
}
}
Run Code Online (Sandbox Code Playgroud)
我已经在方法上放置了一个断点,但它从未调用过.当使用mode="simple"和时ajax="false",它已被调用,但我希望它在高级模式下工作.我正在使用Netbeans和Glassfish 3.1.
我正在创建一个Web应用程序,您必须从DB中读取对象/实体列表并在JSF中填充它<h:selectOneMenu>.我无法对此进行编码.有人可以告诉我该怎么做吗?
我知道如何List<User>从数据库中获取数据.我需要知道的是,如何填充此列表<h:selectOneMenu>.
<h:selectOneMenu value="#{bean.name}">
...?
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud) 我正在使用Facelet模板技术在我正在处理的JSF 2应用程序中布局我的页面.
在我的header.xhtml中,primefaces要求菜单栏包含在h:form中.
<h:form>
<p:menubar autoSubmenuDisplay="true">
Menu Items here!
</p:menubar>
</h:form>
Run Code Online (Sandbox Code Playgroud)
所以,在我的内容页面中,我将有另一个h:form或更多.
如果我只是将h:form放在我的template.xhtml中,它会起作用吗?
<h:body>
<h:form>
<div id="top">
<ui:insert name="header"><ui:include src="sections/header.xhtml"/></ui:insert>
</div>
<div>
<div id="left">
<ui:insert name="sidebar"><ui:include src="sections/sidebar.xhtml"/></ui:insert>
</div>
<div id="content" class="left_content">
<ui:insert name="content">Content</ui:insert>
</div>
</div>
<div id="bottom">
<ui:insert name="footer"><ui:include src="sections/footer.xhtml"/></ui:insert>
</div>
<h:form>
</h:body>
Run Code Online (Sandbox Code Playgroud)
我实际上正在考虑一个用例,我需要在页面中使用多个h:form.
谢谢
我正在学习JSF 2,感谢我在这么短的时间里学到了很多东西.
我的问题是关于如何为我的所有JSF 2页面实现一个公共布局,并且每当我从另一个面板单击一个链接/菜单时,只有页面的内容部分不刷新整个页面.我使用Facelets方法它做了我想做的事情,除了每次我点击一个面板的链接(例如左面板的菜单项)时,整个页面都会刷新.我正在寻找的是一种只刷新页面内容部分的方法.为了说明这一点,我的目标是pagelayout.
没有发布我的代码,因为我不确定Facelets是否可以这样做.除了Facelets之外,还有其他方法更适合我的要求吗?
我正在寻找一些博客,试图找到如何使用JSF 2.0上传文件但是所有的解决方案都让我感到困惑.我想知道我需要什么才能成功上传文件(MP3,PDF,视频......什么类型)并将其作为@Lob存储在数据库中.这是我到目前为止所做的:
我创建了一个具有byte []类型属性的实体,并且还使用@Lob注释进行了注释.
我创建了一个EJB,它将使用一个byte []作为参数的方法引入实体,并使用EntityManager类(persist方法)将其插入到数据库中.
我创建了一个JSF页面,其中包含"file"类型的输入标记和一个提交按钮
我准备了一个托管bean来与JSF页面交换有关该文件的信息.
现在我被卡住了,我有很多疑惑:
我应该怎么做才能将文件从JSF传递到托管bean,然后将其转换为byte [](能够将其处理到EJB)?
servlet如何帮助我?
我需要一个servlet吗?
另外我发现在一些博客中它提到了一些关于servlets 3.0的东西,但我不知道我的工作环境是否正在使用它,如果我使用servlets 3.0(我使用的是JEE6)怎么办?
我之前从未上过文件,也不熟悉servlet.我很困惑,有人可以给我一些开始提示,拜托?
我有一个条件,我有一个注册表单,如果userid为0,它应该显示虚拟图像,当我从任何更新编辑用户时,我检查是否userid不等于0然后显示对应于userid的图像.
我在jsf页面中使用了JSTL.但总是试图去其他循环显示图像.功能正常.唯一的事情是我首先访问页面时无法显示虚拟图像.这是我的代码:
<c:if test="${'#{user.userId}' == '0'}">
<a href="Images/thumb_02.jpg" target="_blank" ></a>
<img src="Images/thumb_02.jpg" />
</c:if>
<c:otherwise>
<a href="/DisplayBlobExample?userId=#{user.userId}" target="_blank"</a>
<img src="/DisplayBlobExample?userId=#{user.userId}" />
</c:otherwise>
Run Code Online (Sandbox Code Playgroud)
我可以使用这个JSTL标签,还是可以使用jsf?
条件运算符适用于许多属性,如"已渲染","值"等.
但它不起作用?或者我做错了吗?
<h:commandLink action="#{true ? bean.methodTrue() : bean.methodFalse()}"/>
Run Code Online (Sandbox Code Playgroud)
错误:javax.el.ELException:不是有效的方法表达式
(我用primefaces ajax action属性实现了它)
jsf ×9
jsf-2 ×6
action ×2
file-upload ×2
primefaces ×2
ajax-update ×1
database ×1
el ×1
facelets ×1
forms ×1
jstl ×1
managed-bean ×1
nested ×1
process ×1
scope ×1
uiinclude ×1
updates ×1