`
hi_app
  • 浏览: 77841 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

11月3号hibernate+struts2.0编程日记

阅读更多
1、调用hibernate存对象的时候必须用bean对象。因为映射的配置文件和bean文件是对应起来的。

2、在查询的时候表也是要用bean对象。

2、当setter和getter出问题的时候就将那个文件中的setter和getter删除了重新生成一下。

3、当那个对象出问题了就去找那个对象的错误。

4、调试的时候用ServerDebug来调试。F6单步调试。
引入类包:快捷键:ctrl+shift+m(将光标定位在那个类的上面。)

5、在运行的时候它还来在启动myeclipse,中的tomcat的时候,就来读取web.xml。
在外面启动tomcat和在myeclipse中启动tomcat是不相同的。

include struts的文件在struts的主文件时要放在开头。。
在jsp页面中也要放到前面最前面。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts> 
    <constant name="struts.devMode" value="true"/>
<constant name="struts.i18n.encoding" value="GBK"/>
<include file="struts_newscenter.xml"></include>

<package name="project_exception" extends="struts-default">

<global-results>
    <result name="error">/error.jsp</result>
    </global-results>
        
<global-exception-mappings>
    <exception-mapping result="error" exception="java.lang.Exception"></exception-mapping>
    </global-exception-mappings>
  </package> 

   
</struts>
6、action中不一定要执行excute的方法。
可以有配置文件中的action的属性method方法来制定。

7、<FORM id="form1" method="post" name="form1" action="newscenter/message/message.action">

newscenter/message  //是struts中的命名空间。
message.action是action的名字。后面的.action是加上的。(最好加上)。
hibernate中做查询的时候就要用sql语句。
在执行select * from table的时候当table是表名而不是bean对象的时候在执行sql语句要用createSqlQuery
当用from bean对象的时候就用createQuery.

8、用泛型就是为了在出来的时候就是那个数据类型了,不用进行强制的转换。(将数据库中的记录存储到一个list中的时候,就要用泛型,因

为再页面上来取这个list对象的时候就不用转换了。)

9、将查询出来的结果返回到jsp页面上,有两种方法:

9.1获取返回request对象。
HttpServletRequest request = ServletActionContext.getRequest();
LeaveMessageDao pdd = new LeaveMessageDao();
int offset=0 ;
try{
//获得表单传过来的数据。
String pager = request.getParameter("pager.offset");
if(pager!=null) offset = Integer.parseInt(pager);

}catch(NumberFormatException e){
e.getMessage();
e.printStackTrace();
}
//将返回来的pageModel对象保存到pm中,这样在页面就是通过request来访问里面的数据。
request.setAttribute("pm", pdd.queryMessage(offset,10));

return SUCCESS;

在页面上来访问具体的值
<!-- 利用迭代器将数据库里面的数据取出来显示-->
<s:iterator value="#request.pm.datas" >
<DIV class=list><SPAN><s:property value="content"/><BR></SPAN>
<BR><SPAN>-------<s:property value="company"/></SPAN>
</DIV>
</s:iterator>

</UL>
</DIV>

9.2在dao中将要返回的值定义为action的一个属性。然后在页面来进行访问。
public String queryMessage() throws Exception {

LeaveMessageDao dao=new LeaveMessageDao();
   
list = dao.queryMessage();

return SUCCESS;

}


public List<LeaveMessage> getList() {
return list;
}


public void setList(List<LeaveMessage> list) {
this.list = list;
}


具体值在页面上的访问。
访问的时候要引入<%@ taglib uri="/struts-tags" prefix="s" %>


<UL>

<!-- 利用迭代器将数据库里面的数据取出来显示-->
<s:iterator value="list" >list是action里面的一个属性,存储了从数据库里面取出来的数据。
<DIV class=list><SPAN><s:property value="content"/><BR></SPAN>//content是表里面的字段名称。来访问要访问的数据。
<BR><SPAN>-------<s:property value="company"/></SPAN>
</DIV>
</s:iterator>

</UL>

10、jquery的表单验证的时候要注意上面和下面一一对应还有就是最后面的没有逗号。(如果丢了或者多了都会出错。)

11、struts+hibernate进行分页显示的时候也是用一个标签ognl里面的标签来实现的。
<%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg" %>



12、验证码。(在用jsp生成的验证码用struts中的action来跳转就会出问题就会出现问题)所以在当前页面用javaScript来生成一个验证码。

13、有时候找不出错误就重新部署
重新构建一下项目。
上面方法不行就重启动myeclipse或重启计算机。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics