(crm笔记2-2)在前端页面输出后台查询出的表单数据

来源:互联网 发布:mac 系统升级 编辑:程序博客网 时间:2024/05/17 23:31

在前端页面输出后台查询出的表单数据/


1、需求



在后台查询到的数据,需要传到前端的jsp页面中进行显示。

实现效果如下:

这里写图片描述


2、思路


1)前端点击事件, 触发事件, 调用Action 中的方法, 方法调用业务层的方法进行数据的查询 , 业务层调用Dao 。

2)将后台的Dao层查到的数据传送到Action 的方法中, 通过 HttpServletRequest 将数据传送到jsp, 然后利用 struts2.xml 进行页面跳转到目标显示页面

3)在页面将标签改为 struts2 标签,对需要显示的表单 form 标签调用迭代器循环输出数据。




3、实现代码



1)前端跳转代码:

<a href="${pageContext.request.contextPath}/sys/sysUserGroupAction_list.do" target="rightFrame">部门设置</a></li>

跳转到Action 中的 list()方法 。 调用业务层的代码,无条件查询数据:

    public String list(){        List <SysUserGroup>sysUserGroups= sysUserGroupService.findSysUserGroup();//调用业务层查询        request.setAttribute("sysUserGroups", sysUserGroups);//将查询到的数据传入给前端页面        System.out.println("sysUserGroups:"+sysUserGroups);        return "list";//返回目标页面    }



2)业务层查询

    @Override    public List<SysUserGroup> findSysUserGroup() {        //组织查询条件        String whereHql="";        List paramsList=new ArrayList<>();        Object[]params=paramsList.toArray();        LinkedHashMap<String , String> orderby=new LinkedHashMap<String ,String>();        orderby.put("o.name", "asc");        return sysUserGroupDao.findObjectByConditionWithNoPage(whereHql, params, orderby);    }



3)dao层

@Override    public List<T> findObjectByConditionWithNoPage(String whereHql,final Object[] params ,LinkedHashMap<String, String>orderby) {        //获取hql语句select前半部分        String hql="select o from "+entityClass.getSimpleName()+" o where 1=1 ";        System.out.println("hql:"+hql);        if(StringUtils.isNotBlank(hql)){            hql+=whereHql;//加入接收到的where部分        }        System.out.println("hql:"+hql);        String orderbyStr=buildOrderBy(orderby);//写一个方法组织orderby语句部分        hql+=orderbyStr;//加入接收到的orderby部分        System.out.println("hql "+hql);        final String fhql=hql;        //调用hibernate中的方法执行query语句        @SuppressWarnings("unchecked")        List list=(List<T>)this.getHibernateTemplate().execute(new HibernateCallback(){            @Override            public Object doInHibernate(Session session)throws HibernateException, SQLException {                Query query=session.createQuery(fhql);                if(params!=null&&params.length>0){                    for(int i=0;i<params.length;i++)                        query.setParameter(i, params[i]);                }                return query.list();            }        });        return list;    }    /**     * 组织排序条件     * @param orderby     * @return     */    private String buildOrderBy(LinkedHashMap<String, String> orderby) {        StringBuffer  buf=new StringBuffer("");        if(orderby!=null&&!orderby.isEmpty()){            buf.append(" order by ");            for(Map.Entry<String ,String >em :orderby.entrySet()){                buf.append(em.getKey()+" "+em.getValue()+",");            }            //去掉最后一个逗号            buf.deleteCharAt(buf.length()-1);        }        return buf.toString();    }



4)前端迭代输出:

                <s:if test="#request.sysUserGroups!=null#">                    <s:iterator value="%{#request.sysUserGroups}" var="sysUserGroup">                    <tr>                        <td><input type="checkbox" name="ids" value="12"                            class="checkbox" onClick="changeCheckCount();"></td>                        <td><a                            href="${pageContext.request.contextPath}/sys/sysUserGroupAction_edit.do"><s:property value="%{#sysUserGroup.name}"/></a></td>                        <td><s:property value="%{#sysUserGroup.principal}"/></td>                        <td><s:property value="%{#sysUserGroup.incumbent}"/></td>                        <td><a                            href="javascript:OpenWin('${pageContext.request.contextPath}/sys/group/usersInGroup.jsp?id=12')">设置</a></td>                </tr>                 </s:iterator>                </s:if>
阅读全文
0 0
原创粉丝点击