使用jsf开发一个网页,
想在网页上实现一个功能:比如有一个按钮,每当我按一下这个按钮,就会在网页上添加一个jsf的组件,并且添加这个组件时页面不刷新
请问这个用ajax怎么实现?这个网页对应的backingbean怎么处理新添加的这个组件?呃不要用太多的js最好是什么组件化些的。。有没有这方面的教程或是文档?
实现这个,用jsf用2.0会不会比1.2简单些?ps:java web开发和java ee这两个板块定位有什么区别
想在网页上实现一个功能:比如有一个按钮,每当我按一下这个按钮,就会在网页上添加一个jsf的组件,并且添加这个组件时页面不刷新
请问这个用ajax怎么实现?这个网页对应的backingbean怎么处理新添加的这个组件?呃不要用太多的js最好是什么组件化些的。。有没有这方面的教程或是文档?
实现这个,用jsf用2.0会不会比1.2简单些?ps:java web开发和java ee这两个板块定位有什么区别
解决方案 »
- hql语句连接postgresql数据库 语法问题
- spring依赖注入问题~急求
- <s:select list="equipmentNames">,问1:如何在action中拿到选中这项。问2:如何给选中的加action事件。
- 在jsp页里 不停地写<% %> 的人是白痴...............
- 刚刚开始学习jsp,不太明白,请各位大虾多多指教!关于jsp中数据库连接的问题。
- 为什么JQUERY在MICROSOFT AZURE无效
- 求最简单的MVC的例子!
- 没人知道吗?你们在搞jsp开发的时候,遇见过要在jsp页面上写方法的时候吗?告诉我你们的格式,好不好?
- 为什么servlet的init没有被执行?
- 浏览器读取本机文件内容
- 图片特效
- JSP页面字符串比较大小的问题,很急,请教高手!
比如创建一个h:inputText组件 HtmlInputText input = FacesContext.getCurrentInstance().getAppliaction().createComponent(HtmlInputText.COMPONENT_TYPE);
比如创建一个h:inputText组件 HtmlInputText input = FacesContext.getCurrentInstance().getAppliaction().createComponent(HtmlInputText.COMPONENT_TYPE);
不过我还不大明白具体的,能说的详细些么
.jsp文件应该怎么写
<a4f:commandButton action="#{backingbean.addcomponents}"/>
backingbean.javaHtmlInputText input= FacesContext.getCurrentInstance().getAppliaction().createComponent(HtmlInputText.COMPONENT_TYPE);
backingbean中这样写么?在backingbean中add出的jsf组件对应的变量在哪里?
不过我还不大明白具体的,能说的详细些么
.jsp文件应该怎么写
<a4f:commandButton action="#{backingbean.input}"/>
backingbean.java HtmlInputText input= FacesContext.getCurrentInstance().getAppliaction().createComponent(HtmlInputText.COMPONENT_TYPE);
backingbean中这样写么?在backingbean中add出的jsf组件对应的变量在哪里?
在a4j:commandButton组件中就是使用reRender属性(reRender="grid1"),这样就不会刷新整个页面具体代码:
<%@taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<f:view>
<h:form id="form1">
<h:panelGrid id="grid1">
</panelGrid>
<a4j:commandButton value="动态添加组件"
action="#{backingbean.addComponentAction}" reRender="grid1">
</h:form>
</f:view>
backingbean public String addComponentAction(){ /**
*拿到组件树的根节点,然后对其遍历,找到id=grid1的组件h:panelGrid
*/
HtmlPanelGrid grid1 = null; UIViewRoot viewRoot =FacesContext.getCurrentInstance().getViewRoot(); Iterator kids = viewRoot.getFacetsAndChildren();
while(kids.hasNext()){
UIComponent kid =(UIComponent) kids.next();
if("gird1".equals(kid.getId()){
gird1=(HtmlPanelGrid)kid ;
break;
}
}
/**
* 创建一个h:inputText组件
*/
HtmlInputText input = FacesContext.getCurrentInstance().getAppliaction().createComponent(HtmlInputText.COMPONENT_TYPE);
input.setId("input1");
grid1.getChildren().add(input);//添加到grid中
return null;
}这样就不需要刷新整个页面,只是局部刷新H:panelGrid组件大致是这样的,代码是我在这里面直接敲得,肯定有错误的地方,估计问题不大怎么引入ajax4jsf,配置web.xml,网上很多,可以找找看
OperaMask的实现...JSF + ExtJS2.2