Sugo

Goof off ? no way: never
posts - 20, comments - 8, trackbacks - 73, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Struts+hibernate开发笔记

Posted on 2007-01-15 20:39 sugo 阅读(306) 评论(0)  编辑  收藏
     使用hibernate的hql查询,当指定某些字段时,一行数据此时得到的是相应的一个数组。而字段全部查询得到的是一个pojo对象。
     使用struts的逻辑标签显示时,如果得到的是一个pojo对象,可以使用<logic:iterate>,也可以使用<logic present>使用的时候不用再定义id,name属性即为request或者session里存储的对象的别名。然后使用<bean:write>定义两个属性name和logic标签的name一样,property为对应的类中定义的成员变量名字。
     如果得到的是数组的集合,则需要<logic:iterate>嵌套。例如:
    <logic:iterate name="du" id="indiv" scope="session">
         <logic:iterate name="indiv" id="tiny">
              <bean:write name="tiny" />
        </logic:iterate>
    </logic:iterate>
     注(个人认为):可以看到规律,下一层的name为上层的id。
    得到的是集合,如List 或者Vector等。例如:
   <logic:iterate scope="session" id="du" name="dlist">
      <bean:write name="du" property="wdate" />&nbsp;
      <bean:define id="text" name="du" property="content" type="String"/>
      <html:link href="modify.do" paramId="id" paramName="du" paramProperty="id" linkName="mod"  />
      <html:button property="modify" onclick="mod.click()" value="modify" />
      <html:textarea property="content" value="<%= text %>"></html:textarea><br>
      <bean:write name="du" property="username" />&nbsp;
      <bean:write name="du" property="weather" />&nbsp;<br>
      <html:link href="modify.do?manipulate=delete" paramId="id" paramName="du" paramProperty="id"        linkName="del"  />
      <html:button property="delete" onclick="del.click()" value="delete" />
    </logic:iterate>
    例子中还包括在一个组件中填值,使用<bean:define>标签,可以得到一个对象,id就是对象的引用。
    <html:link>的linkName相当于超链接<a href="">中的id属性,<html:link>的page和href的不同,page需要相对路径,url前面需要加上/,href则不用。<html:link>参数传递,如果确定需要传递的参数,直接跟在url后面即可。如果是动态的,则需要paramId, paramName, paramProperty 。第一个为参数名称,第二个为存储的对象的名字,如在request、session中存储的名字,第三个就是这个对象里面的成员变量。多个参数一般使用HashMap。
    Struts中的action,即便是不想用ActionForm,也需要在action的配置属性里写入,否则会出现空值的问题,今天遇到了,所以定义DynaActionForm还是必要的。
    hibernate一般的数据库操作都通过session来进行,我把所有涉及的操作都写成了一个ObjectDAO,比较方便操作。

只有注册用户登录后才能发表评论。


网站导航: