it167.com  设为主页
 收藏本站
 
  资讯:业界动态 | 软件动态 | 人物专栏 | 安全资讯 | 网络生活 | 电子商务 | 小游戏 | 视频 | 美女图片 | 音乐
  网络编程 | 网站运营 | 网页制作 | 图形图象 | 操作系统 | 媒体动画 | 软件教学 | 网络应用 | 邮件系统 | 网络安全 | 认证考试
asp | .net | php | jsp | Sql | java | Dreamweaver | FrontPages | Javascript | css | Coreldraw | photoshop | Flash | Coreldraw
当前位置: > 主页>网络编程>Java>JAVA开发技巧>使用 Struts Validator(1)
最新新闻

·机会与整合 边缘化互联
·TOM-Skype新增三大本地
·雅虎抢闸邮箱竞赛 网易
·新浪抢攻北京奥运
·洞悉网络口碑的掘金机会
·拆解网络病毒黑金交易
·木马下载器近期出现新变
·《互联网周刊》第17期文
·Web2.0是否催生自吹自擂
·三张宝宝裸照招来MSN封
热门新闻
·Java SE 6 的HTTP 协议
·Java中对HashMap的深度
·Java调用Oracle的过程和
·开源技术 Eclipse使用技
·深入了解WebLogic的类装
·Java进阶:Struts多模块
·Java初学者入门经典:面
·Jave学习精华:Jsp小结
·Java学习:EJB的专用术语
·编程必备经典:Java常见
推荐新闻
 
 

使用 Struts Validator(1) 

作者:   来源:it167   点击:   日期:2007-01-28

这段代码做的事情并不多;它只是把 test-validation.jsp 的表单关联到一个新类com.ibm.struts.validation.ValidationAction。这个类我还没有介绍;马上就要编写它的代码。剩下的内容对于任何 Struts 开发人员看起来都应当很典型。它指明了传递给动作的表单的名称、范围以及输入页面。它还开启了验证,至于原因,不言自明。

现在,在访问页面时,将得到新的错误消息(假设做了以上修改,并重新部署了应用程序):

清单 11. 新的错误消息

javax.servlet.ServletException: Cannot retrieve definition for form bean ValidationForm on

action /SubmitValid

org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)

org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)

org.apache.jsp.pages.test_002dvalidation_jsp._jspService

(org.apache.jsp.pages.test_002dvalidation_jsp:102)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)

org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)

org.apache.struts.action.RequestProcessor.internalModuleRelativeForward

(RequestProcessor.java:994)

org.apache.struts.tiles.TilesRequestProcessor.internalModuleRelativeForward

(TilesRequestProcessor.java:343)

org.apache.struts.action.RequestProcessor.processForward(RequestProcessor.java:553)

org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:211)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)

org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)

javax.servlet.http.HttpServlet.service(HttpServlet.java:689)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)



这是一个容易修复的问题;只需添加新的 form-bean 元素即可,也是添加到 WEB-INF/struts.config.xml 文件,这个元素定义了表单的 JavaBean,如清单 12 所示:

清单 12. form-bean 元素

<form-beans>

<!-- Other form-bean listings -->

<form-bean name="ValidationForm"

type="org.apache.struts.action.DynaActionForm">

<form-property name="username" type="java.lang.String" />

<form-property name="password" type="java.lang.String" />

<form-property name="phone" type="java.lang.String" />

<form-property name="email" type="java.lang.String" />

<form-property name="url" type="java.lang.String" />

</form-bean>

</form-beans>



现在就得到了一个可工作的配置。重新部署这些更改,访问欢迎页面,点击链接。应当看到如图 3 所示的验证测试页面:

现在欢迎屏幕将把您带到测试表单

图 3:现在欢迎屏幕将把您带到测试表单

添加用于进行处理的定制动作

因为不需要考虑什么业务逻辑(只不过是个示例应用程序),所以编写验证表单的定制 Action 很容易,如清单 13 所示:

清单 13. 定制动作

package com.ibm.struts.validation;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

public class ValidationAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest req,

HttpServletResponse res)

throws Exception {

ActionForward forward = null;

// Perform some sort of business logic with the data. In this sample,

//   we don't care about this; in fact, if the application got here,

//   they've already passed validation, and we just need to return success



forward = mapping.findForward("success");

return forward; 

}

}



当然,这个动作在 struts-config.xml 中用 SubmitValid 动作引用。在这个示例中,它什么也不做 —— 只是用 “success” 转发把控制传递给 Struts 控制器。这与 struts-config.xml 文件匹配并请求/pages/success.jsp JSP,如下所示:

<%@ taglib uri="/tags/struts-html" prefix="html" %>

<html:html locale="true">

<head>

<title>Welcome</title>

<html:base/>

</head>

<body bgcolor="white">

<h3>Validation Successful!</h3>

</body>

</html:html>

当然,没什么特别的内容,因为这篇教程介绍的是验证,而不是页面设计。



共13页: 上一页 [1] [2] [3] [4] [5] [6] [7] 8 [9] [10] [11] [12] [13] 下一页
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·用J2SE 1.4进行Internet安全编程(上)(1) ·J2EE项目开发经验二则
·J2EE WEB应用架构分析(1) ·J2EE中XML配置文件的读取处理
·Eclipse开发工具简介 ·论J2EE开发Web应用程序中的安全认证机制(

   文章评论:(0条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:it167  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。