2007-03-29

3月29日 工作日记

关键字: spring webwork hibernate dwr 工作 日志
3月29日,天气晴天,太阳非常大,热死了
今天用Spring+WebWork+Hibernate做一个注册用户的例子
没什么问题,不过用了一下Dwr检验用户名是否存在,下面来记录一下
把DWR的包导入进去,在/WEB-INF/目录下创建一个dwr.xml文件
代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
    "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
	<allow>
		<create javascript="Validate" creator="spring">
			<param name="beanName" value="validate"/>
		</create>
	</allow>
</dwr>

<create javascript="Validate" creator="spring">

创建一个Validate.js的文件,以spring 方式
<param name="beanName" value="validate"/>

对应spring 文件里bean 的id
代码如下:
<bean id="validate" class="com.esc.web.action.Validate">
	<property name="userService">
		<ref bean="userService"/>
	</property>
</bean>

在web.xml文件配置如下:
<!-- dwr配置 -->
	<servlet>
		<servlet-name>dwr</servlet-name>
		<servlet-class>
			org.directwebremoting.servlet.DwrServlet
		</servlet-class>
		<init-param>
			<param-name>debug</param-name>
			<param-value>true</param-value>
		</init-param>

	</servlet>
	<servlet-mapping>
		<servlet-name>dwr</servlet-name>
		<url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>
<!-- 配置这个是应该dwr要找到applicationContext.xml的文件路径,否则dwr找不到文件 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/applicationContext.xml</param-value>
	</context-param>

Validate.java文件
public class Validate {
	private IUserService userService;
	
	public void setUserService(IUserService userService) {
		this.userService = userService;
	}

	public Validate() {
		// TODO 自动生成构造函数存根
	}
	public boolean validateUserName(String username){
		//验证用户名是否存在
		return userService.validateUserName(username);
	}
}

页面调用:
<script type='text/javascript' src='dwr/engine.js'></script>
	<script type='text/javascript' src='dwr/util.js'></script>
	<script type='text/javascript' src='dwr/interface/Validate.js'></script>

前面2个是dwr自带的js
第3个 是我们在dwr.xml自已定义的js文件,名字要相同
function validUserName(){
    		var f=document.Register;
    		var name=f.username.value;
    		if(name==""){
    			alert("请输入用户名!");
    		}else{
    			if(!isUserName(name)){
    				alert("输入的用户名不符合要求!");
    			}else{
    				Validate.validateUserName(name,msg)
    			}
    		}
    	}

Validate.validateUserName(name,msg)
是执行Validate.java 里面的validateUserName方法
把name传进去,msg 是另一个function
这样写直接能把值传过去,自已执行msg(b)
function msg(b){
    		if(b){
    			alert("用户名已经存在,请重新输入!");
    			document.Register.username.value="";
    			document.Register.username.focus();
    		}else{
    			alert("用户名不存在,可以使用!");
    		}
    	}

  • 6988f373-0f83-413b-9668-56d2b0189a9c-thumb
  • 描述:
  • 大小: 10.5 KB
  • 882ff673-ee02-476f-bf63-33486160cf57-thumb
  • 描述:
  • 大小: 22 KB
  • 8933383a-0627-4d82-bec6-8c6b567eaf1f-thumb
  • 描述:
  • 大小: 20.9 KB
评论
发表评论

您还没有登录,请登录后发表评论

freeport
搜索本博客
最近加入圈子
存档
最新评论