[SEAM] selectOneMenu传值到EntityQuery中进行查询
无双Rama
2009-04-07
sxlkk 写道 这个用那个EntityQuery能实现,我就是这么做的,不过首先你要会用那个myfaces里面的一个标签,xmlns:t="http://myfaces.apache.org/tomahawk",这个标签的用法在seam中和jsf中用法差不多的,http://sxlkk.iteye.com/blog/354386这里面我写的是jsf的,你看看吧,我seam中就是这么实现的多选,和全选
我这看不了blog,进不去 能贴出来吗? |
|
sxlkk
2009-04-07
首先在页面上要使用Myfaces的一个taglib
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%> 然后在页面的<f:view>内部用 <t:saveState value="#{后台Bean}"></t:saveState> 下面是datatable的写法 <h:dataTable id="dt" value="#{后台Bean.resultList}" var="aaa" binding="#{后台Bean.table}">//这里在后台bean中要有table属性,是UIData 类型的,提供get,set方法 <h:column> <f:facet name="header"> <h:outputText value="序号" /> </f:facet> <center> <h:selectBooleanCheckbox value="#{后台Bean.selectTable[后台 Bean.table.rowIndex]}" />//这里在后台bean中要有selectTable这个属性 <h:outputText value="#{后台Bean.table.rowIndex+1}" /> </center> </h:column> 后台bean的写法 public class 后台Bean{ private UIData table; private boolean[] selectTable; private List list; @PersistenceContext private EntityManager em; public List getResultList(){ list = 调用ejb的方法得到list的结果 selectTable = new boolean[list.size()];//给变量初始化是在此位置 return list; } public String deleteAction(){ for(int i = 0; i < selectTable.length; i++){ if(selectTable[i]){ em.remove(list.get(i)); } } return "success"; } } ====================================== 这只是jsf实现方法,具体到seam还有少些改动 |
|
无双Rama
2009-04-07
非常感谢 sxlkk 的帮助,我已经在seam中实现了:
页面中: <h:selectOneMenu value="#{str}"> <f:selectItem itemValue="0" itemLabel="失效" /> <f:selectItem itemValue="1" itemLabel="生效" /> <f:selectItem itemValue="2" itemLabel="全選" /> </h:selectOneMenu> <h:commandButton value="查詢" reRender="sm1" action="#{salarymodelquery.selectMode}"/> Query 类: @Out(required=false)@In(required=false) private String str="2"; public String getStr() { return str; } public void setVar(String str) { this.str = str; } // * 查詢條件關聯的對象 private SalaryModel salarymodel = new SalaryModel(); // 查詢語句 //private static final String ejbql = "select Salarymodel from SalaryModel salarymodel"; // * 限制條件 private static final String ejbql="select salarymodel from SalaryModel salarymodel"; private static final String[] RESTRICTIONS = {"(salarymodel.status)=#{true}"}; private static final String[] RESTRICTIONS1 = {"(salarymodel.status)=#{false}"}; private static final String[] RESTRICTIONS2 = {"#{''}"}; public SalaryModelQuery() { this.setValues(); this.selectMode(); } public void selectMode(){ if (str.equals("2")) { super.setEjbql(ejbql); super.setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS2)); } if (str.equals("0")) { super.setEjbql(ejbql); super.setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS1)); } if (str.equals("1")) { super.setEjbql(ejbql); super.setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS)); } } @DataModel(value="salmod") @Override public List<SalaryModel> getResultList(){ return super.getResultList(); } 经过多次调试终于可以用了,非常感谢大家的帮忙和关注 |
相关讨论
相关资源推荐
- 设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
- 在jsp/html中的select下拉菜单如何传值到后台以及接收后台的传值
- <h:selectOneMenu> 传值问题
- JSF实现h:selectOneMenu 联动框处理,更改下拉框显示。
- 用selectOneMenu标签开发级联选择
- primefaces的selectonemenu的奇怪的规定
- JSF中得到selectOneMenu的使用
- JSF中SelectOneMenu的使用
- selectOneMenu 在column內 如果還有其他元件 位置不一致的處理方式1
- JSF中selectonemenu中前后台交互的问题和javascript访问h:form中控件的问题