有关java编程

zodiac的学习笔记

统计

留言簿(1)

阅读排行榜

评论排行榜

2008年12月24日 #

单纯使用spring(struts可选)的一种架构方案(1)

     摘要: 概述: 感觉hibernate或者jpa之类的orm映射框架硬把关系型数据库映射成对象没有太大的必要性,我想每个数据库表对应一个实体对象已经足够了,其他的关联问题根据需要在service层对应到每一个功能逐个进行解决,最大的好处是可以直接在代码里写出效率较高的sql语句。今天有时间,整理一下这个方案的思路,该思路不排斥团队开发的分工协作,开发效率也比较高。 该思路部分借鉴了公司内一同事的做法,...  阅读全文

posted @ 2008-12-24 17:20 Zodiac 阅读(327) | 评论 (0)编辑 收藏

一个通用的查询结果页面对象

     摘要: 通常,此类对象放在项目的vo包中。 PageBean.java代码: package org.zodiac.vo; import java.util.List; /** *//**查询结果页面对象  *   */ public class PageBean {  &nbs...  阅读全文

posted @ 2008-12-24 15:01 Zodiac 阅读(206) | 评论 (0)编辑 收藏

2008年12月5日 #

关于struts2的几个问题

最近正在用struts+spring+jpa开发项目,看到这篇文章,转在这里,有备无患。

原文地址:http://www.blogjava.net/apple0668/archive/2008/12/03/244209.html
作者:apple0668
关于开发模式引发的问题:

在使用struts2中,为了方便调试,通常struts.properties文件中把开发模式设置为true。当表单里面的数据为空的时候提交,由于配置了validation校验框架,页面被拦截,有提示信息。控制台输出如下:
2008-12-3 21:10:39 com.opensymphony.xwork2.interceptor.ParametersInterceptor setParameters
严重: ParametersInterceptor - [setParameters]: Unexpected Exception caught setting 'age' on 'class org.mmc.struts2.action.RegisterAction: Error setting expression 'age' with value '[Ljava.lang.String;@b70648'
2008-12-3 21:10:39 com.opensymphony.xwork2.validator.ActionValidatorManagerFactory <clinit>
信息: Detected AnnotationActionValidatorManager, initializing it...


控制台出错信息分析:
由于配置文件中继承了struts-default.xml文件
其中struts-default.xml中的代码片段为:
<interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/>

由于配置了validation校验框架部分片段:

原因是输入类型不匹配,这个出错信息是由于开发模式设置为true,把开发模式设置为false就不会产生这个错误信息。这个是LOG给的控制台错误,方便用户调试使用,并不影响程序的正常运行。

<field name="age">
        
<field-validator type="required">
            
<message>age should not be blank!</message>
        
</field-validator>
    
        
<field-validator type="int">
            
<param name="min">1</param>
            
<param name="max">150</param>
            
<message>age should be between ${min} and ${max}</message>
        
</field-validator>
    
</field>

另外

Struts2基于注解的校验默认是对一个Action(也就是对一个Class的校验),但有些时候单独需要验证其中的一个Method,这个时候就需要修改下默认的Validation拦截器.具体代码如下:

                <interceptor-ref name="validation">
                    
<param name="validateAnnotatedMethodOnly">
                        true
                    
</param>
                    
<param name="excludeMethods">
                        input,back,cancel
                    
</param>
                
</interceptor-ref>
这样就只会验证Method了.

posted @ 2008-12-05 16:49 Zodiac 阅读(276) | 评论 (0)编辑 收藏

2008年11月24日 #

很喜欢这个博客服务

我喜欢这个博客服务提供的插入代码功能,在这里写一些java学习心得一定很爽。

贴一段Ejb3会话bean看看效果:
package org.zodiac.hello;

import javax.ejb.Local;
import javax.ejb.Remote;
import javax.ejb.Stateless;

@Stateless
@Remote(Hello.
class)
@Local(Hello.
class)
public class HelloBean implements Hello{

    
public String sayHello(String name) {
        
return name+",你好!";
    }


}

Hello接口(试试显示行号的样子):
1package org.zodiac.hello;
2
3public interface Hello {
4    
5    String sayHello(String name);
6
7}

8

posted @ 2008-11-24 12:05 Zodiac 阅读(95) | 评论 (0)编辑 收藏

仅列出标题