1. jsF怎么动态添加复选框
这个并不是在于checkbox 而是在于你放到哪里。。像你所说的就应该将这些数据放到<rich:datatable>里面处理。。结合web bean。只需要将一个checkbox标签放到前面就可以了。
2. jsf 的工作原理是怎样的 它有什么知识点
1。在新建的工程中添加jsf框架,将自动生成一web.xml文件。内容如下:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <context-param> <param-name>javax.faces.CONFIG_FILES</param-name> <param-value>/WEB-INF/faces-config.xml</param-value> </context-param> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.faces</url-pattern> </servlet-mapping></web-app>
2。在src中编写一个bean,不同于Struts的是这个bean将集合FormBean和ActionBean,这就和以前我们写java类十分相似了,而且不用继承任何特定类。写好这个bean以后在WEB-INF下的faces-config.xml中加入下列一段代码,将该bean转换成jsf的managed Bean。
<managed-bean> <managed-bean-name>该bean的别名</managed-bean-name> <managed-bean-class> 该bean所在位置(包名+类名) </managed-bean-class> <managed-bean-scope>该bean的存在范围(session,request,application,none四种)</managed-bean-scope> </managed-bean>
跳转的映射是加入如下一段:
<navigation-rule> <from-view-id>/输入的页面名</from-view-id> <navigation-case> <from-outcome>代表跳转到哪里的字符串(这里可以随便定义)</from-outcome> <to-view-id>/跳转的页面名</to-view-id> </navigation-case> </navigation-rule>
3。新建一个带jsf标签的jsp页面,<body></body>中输入如下代码:
<f:view> <h:outputText value="#{backing bean名.字段名}"></h:outputText> //要输出到页面的值 <h:form> //form <h:inputText value="#{backing bean名.字段名}"></h:inputText><br/> //要输入的字段 <h:commandButton action="#{backing bean名.业务方法}" value="按钮文字"></h:commandButton> </h:form> </f:view>
3. JSF 中。怎么能让多个复选框只能选取一个.!。
给每个复选框一个ONCLICK事件,点击一个复选框时,设置其它复选框为FALSE
4. jsf中 点击按钮后跳转 复选框选中的 没存住
<t:selectBooleanCheckbox forceId="true" id="xzbz" value="#{zdzdBean.selectedId[row.YWLSH]}" style="width: 3em" valueChangeListener="#{zdzdBean.applySelected}">
</t:selectBooleanCheckbox>
value="#{row.YWLSH}" 这样写 你的table 中var=row是这样的吧
valueChangeListener是JSF中提供的值变更监听事件 是细粒度的action提交无返回值,request请求触发zdzdBean的applySelected()方法去操作结果集
类里的方法这样写
/**
* 页面中checkbox值变监听器
*
*
*/
public void applySelected(ValueChangeEvent event) {
HtmlSelectBooleanCheckbox checkBox = ((HtmlSelectBooleanCheckbox) event
.getComponent());
SimplyApplyBasicInfoVO resultItem = (SimplyApplyBasicInfoVO) resultModel
.getRowData();
if (checkBox.getValue().equals((Object) true)) {
if (!selectedApply.contains(resultItem))
selectedApply.add(resultItem);
} else {
if (selectedApply.contains(resultItem))
selectedApply.remove(resultItem);
}
}
5. 今天使用jsf, 用selectManyCheckBox, 但selectItem太多了,我想把它弄成三列显示,请各位大侠给点建议。
这个使用布局就可以实现。
selectManyCheckBox标签中有属性:layout
layout="pageDirection" 垂直定位,layout="lineDirection"水平定位,layout=“spread”特殊定位
layoutWidth=“2” 表示每行排两个。 dir="ltr" 表示从左到右排。
如果你的情况特殊,那就使用特殊定位,想怎么排就怎么排,不过实现起来就比较复杂了。
希望对你有所帮助。
6. jsf的<h:selectManyCheckbox>标签调用js函数
|if(document.getElementById("nianji_one").value==""
||document.getElementById("nianji_one").value==""){
------------代码版权------------------
}else{
----------代码-------------------
}
7. jsf页面中有两列复选框,要怎么对复选框验证,让一行的两个复选框必须选中
嗯,来我知道2种
1、前台页自面中用script控制,就是在<h:inputText id="a1" value="" .../>中加onclick="函数();",然后在script脚本中对你必须选定的复选框的id,进行验证,如果为空报错并且,return false;
2、后台代码中修改。前台数据装入数据库之前,有一个java程序会做中间的装入前最后操作,这个java的特点就是有类似数据库中的语法(尤其是 from 表名 等)。你在这个java装入数据库之前做if判断,如果值为空就报错就行了,当然需要判断的是前台是否接收了这两个值。
具体实现说不清楚,如果你有开发基础,基本我的意思就能明白了
望采纳
8. jsf标签里单复选框默认值的问题
使用JSF,对于这样的问题,是很简单的。至少比jsp从后台取值要简单。
举例:
.xml文件中配置
<managed-bean>
<managed-bean-name>配置的Form名称</managed-bean-name>
<managed-bean-class>
Form类的路径
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
1、输入框inputText
页面:<h:inputText value="#{配置的Form名称.属性名}"/>
Form中:声明属性名,建立方法从后台获得值,并传值到属性名,注意get & set
当跳转到页面时,就有值了。
2、下拉单选 selectOneMenu
页面:<h:selectOneMenu value="#{配置的Form名称.属性名1}" >
<f:selectItems value="#{配置的Form名称.属性名2}" />
</h:selectOneMenu>
Form中:声明属性名1,属性名2(这个肯定是集合了,如List<SelectItem>)
建立方法从后台获得值,并传值到属性名2,注意get & set
希望对你有帮助。