posts - 3,  comments - 6,  trackbacks - 0

我的评论

@default
看到了,谢谢分享。
不知道是哪个版本加入的,当时版本的Config.groovy文件中可没有这么一句。
public void addStudentByCondition(Student stu){
if(stu.getAge()<30)
throw new MyBizException(); // 可以用RuntimeException替换
getStudentDAO().save(stu);
}

注意,整个addStudentByCondition函数应该就这几行,而不是修改这三行。
把你的try/catch之类的统统删除。
我贴了呀,上面。只要把addStudentByCondition函数的实现完整替换一下,至少是能回滚了。
如果你的程序还是原来那个样子,虽然抛出了异常也是被你自己捕获了,并没有被spring捕获到。
spring既然不知道发生了异常,当然不会回滚事物了。
两个问题:
既然使用了spring的声明事物,就不应该再自己声明事物了。spring的声明事物就是检查是否有异常出现来决定最后是提交还是回滚的,所以必须使用异常。
所以你的server程序应该写为:(似乎根本不需要回滚)
public void addStudentByCondition(Student stu){
if(stu.getAge()>=30)
getStudentDAO().save(stu);
}
如果因为有其他逻辑需要回滚的话,应该这样:
public void addStudentByCondition(Student stu){
if(stu.getAge()<30)
throw new MyBizException(); // 建议自定义一个有业务意义的异常
getStudentDAO().save(stu);
}

另一个问题,你的Dao类在使用templage方法是都自己做了异常处理,但是你的异常处理无实质内容,这个做法会影响到事物的。如果你不知道应该如何处理这些异常,最好就是不要管他。
re: 几种javascript的改进写法 Tiger F 2007-11-26 09:51  
又看了一遍,可能是我理解错了。
这个做法是想要确定GBK编码情况下字符串需要的存储空间大小。不过我还是觉得这样不好,要是后台系统要采用utf8或者utf16呢。增加了系统部署的限制。
re: 几种javascript的改进写法 Tiger F 2007-11-26 09:46  
我认为第5条不正确,javascript中使用的应该是unicode,情况与java类似。这样的做法反而会得到错误的结果。
是否为null的语法应该用 is null 的吧
呵呵,这也是电子商务呀
re: 跳动的firefox Tiger F 2007-09-18 23:00  
我也觉得是float解释的问题,奇怪的地方在于似乎每点一下它就重新解释了一次。这个问题我还在mozillazine上发帖了,也许是英文太烂,没人理呀
磨刀不误砍柴工,javacc之类的工具并不难掌握,但是一定能帮你走得更远更快的。而且javacc有一个比较丰富的语法语言库,其中就有sql的,你可以拿来直接用就能解决第一步的问题。
你使用的jstl声明是早期版本的,现在的声明方式应该如下:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
这样不论在2.3还是2.4版本下都不会有不支持el的问题了。
建议找一个现成的词法分析工具,比如javacc
已经在用script修改页面的内容了,为什么不把success直接写在innerHTML中还要再用另一段script输出?直接写成下面的样子不是很简单?

unction loadScript(){
var element=document.getElementById("result");
element.innerHTML="The result is: Successful";
}
document对象是动态的,如果你对页面进行了修改,那就一定会反映到document对象中的,所以你不能通过它再得到修改前的某些内容的。

另外,既然指定了base,实在不该再出现src="http://127.0.0.1:7000/... 这样的代码呀。
能够实现的功能基本一样,主要是语义的区别,message用于做一些提示和确认的文字,error则是错误提示。struts标签默认情况下也会使用不同的html标记和格式显示它们。
re: 还是struts2问题 Tiger F 2007-09-04 22:12  
多半是因为你的web.xml中有什么错误导致的,可以查tomcat的日志文件,看看其中有什么exception