博文
变量存取范围及JSP、JSTL和Struts技术中变量的存取方法(2007-04-09 11:30:00)
摘要:JSP中变量的定义范围实际有5种:本地范围,页面范围(page),请求范围(request),会话范围(session)和应用程序范围(application)。
以下介绍在各种技术中的变量存取方法。
u JSP中:
存储:
本地范围变量直接定义,如:
String name="name in page";
page范围变量保存在pageContext隐式对象中,如:
pageContext.setAttribute("nameContext","name in pageContext");
request范围变量保存在request隐式对象中,如:
request.setAttribute("nameRequest","name in Request");
session范围变量保存在session隐式对象中,如:
session.setAttribute("nameSession","name in Session");
application范围变量保存在application隐式对象中,如:
application.setAttribute("nameApplication","name in Application");
读取:
name:<%=name%><br/>
nameContext:<%=pageContext.getAttribute("nameContext").toString()%><br/>
nameRequest:<%=request.getAttribute("nameRequest").toString() %><br/>
nameSession:<%=session.getAttribute("nameSession").toString() %><br/>
nameApplication:<%=application.getAttribute("nameApplication").toString() %>
......
struts-config-1.1.DTD祥解(2007-04-07 14:46:00)
摘要:struts-config-1.1.DTD:
<!--
DTD for the Struts Application Configuration File, Version 1.1
To support validation of your configuration file, include the following
DOCTYPE element at the beginning (after the "xml" declaration):
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
$Id: struts-config_1_1.dtd 51429 2004-02-17 05:51:48Z martinc $
-->
<!-- ========== Defined Types ============================================= -->
<!-- An "AttributeName" is the identifier of a page, request, session, or
application scope attribute.
-->
<!ENTITY % AttributeName "CDATA">
<!-- A "BeanName" is t......
错误处理(2007-03-13 11:10:00)
摘要: 尽管Struts框架提供了有效的异常处理机制,但不能保证处理所有的错误,这时Struts框架会把错误抛给Web容器,在默认情况下Web容器会向用户浏览器直接返回原始信息。如果想避免直接让用户看到这些原始信息,可以在web.xml中配置<error-page>元素,以下代码演示了如何避免用户看到HTTP 404、HTTP 500错误和Exception异常。
web.xml:
<error-page>
<error-code>404</error-code>
<location>/exception/error404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/exception/error500.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/exception/default.jsp</location>
</error-page>
当WEB容器捕获到exception-type或error-code指定的错误时将跳到由location指定的页面。
问题:当form bean 为动态bean时,在action中无法对form bean数据进行验证,因为formbean没有具体实现类。action中无法引用
......
ActionServlet参数设置(2007-03-13 11:09:00)
摘要:The standard version of ActionServlet is configured based on the following servlet initialization parameters, which you will specify in the web application deployment descriptor (/WEB-INF/web.xml) for your application. Subclasses that specialize this servlet are free to define additional initialization parameters. Several of these were deprecated between the 1.0 and 1.1 releases. The deprecated parameters are listed after the nominal parameters.
标准ActionServlet在web.xml的初始化参数如下所示。
• config - Comma-separated list of context-relative path(s) to the XML resource(s) containing the configuration information for the default module. (Multiple files support since Struts 1.1) [/WEB-INF/struts-config.xml]. 指定strut配置信息文件
•
• config/${module} - Comma-separated list of Context-relative path(s) to the XML resource(s) containing the configuration information for the module that will use the specified prefix (/${module}). This can be repeated as many times......
Validator 验证 - 其他(2007-03-13 11:08:00)
摘要:在struts1.2中要实现上述的两个字段比较功能可以用validwhen验证。方法如下:
<form-validation>
<formset>
<form name="RegistrationForm">
<field property="emailAddress"
depends="required,email">
<arg key="prompt.emailAddress"/>
</field>
<field property="password"
depends="required">
<arg key="prompt.p......
Validator 验证 - 自定义验证(2007-03-13 11:07:00)
摘要:n 在struts1.1中创建一个自定义的验证,验证一个字段的值是否和另一个字段的值相等。
1. 创建一个包含一个实现规则接口的静态方法的类。
CunstomValidatorRules.java;
package com.oreilly.strutsckbk.ch08;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.validator.Field;
import org.apache.commons.validator.GenericValidator;
import org.apache.commons.validator.ValidatorAction;
import org.apache.commons.validator.util.ValidatorUtils;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.validator.Resources;
public class CustomValidatorRules {
public static boolean validateTwoFields( Object bean,
ValidatorAction va,
&nbs......
Validator 验证 - 完整的举例(2007-03-13 11:04:00)
摘要:n struts-config.xml:
<action
attribute="checkForm"
name="checkForm"
input="/validate/error.jsp"
path="/validate/check"
scope="request"
type="cn.rolia.struts.action.validate.CheckAction">
<forward name="success" path="/validate/success.jsp" />
</action>
<form-bean name="checkForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="zipCode" type="java.lang.String" />
<form-property name="province" type="java.lang.String" />
<form-property name="city" type="java.lang.String" />
</form-bean>
n CheckAction.ja......
Validator 验证 - 用正则表达式验证表单字段(2007-03-13 11:00:00)
摘要:mask验证规则提供了基于正则表达式的验证机制,如:
<form name="ValidationTestForm">
<!-- Validate Social Security Number -->
<field property="ssn"
depends="required,mask">
<arg key="prompt.ssn"/>
<var>
<var-name>mask</var-name>
<var-value>^[0-9]{3}-[0-9]{2}-[0-9]{4}$</var-value>
</var>
</field>
</form>
正则表达式使用通用符号描述并解析文本,使用它你可以验证数据是否符合指定的格式。
STRUTS框架通过mask验证规则使用正则表达式。可以在var元素中指定正则表达式。
<var>
<var-name>mask</var-name>
<var-value>^[0-9]{3}-[0-9]{2}-[0-9]{4}$</var-value>
</var......
Validator 验证 - 配置(2007-03-13 10:58:00)
摘要:要使用Validator验证框架,首先必须在struts-config.xml中指定plug-in元素。
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>
pathnames指定你要使用的Validator配置文件。可以设置一个或多个。第一个validator-rules.xml定义
各个验证规则,第二个validation.xml定义了验证框架如何应用到你的应用程序中去。
一个好的方法是为应用程序的每个功能模块定义一个validation.xml。一个大型的应用程序可能有一大堆这样的文件
要使用验证框架的form bean ,如果是硬编码的formbean则必须继承org.apache.struts.action.ValidatorForm。如果是动态formbean则必须是org.apache.struts.action.DynaValidatorForm或它的字类。
下面一个实例验证MyLoginForm表单的use......
Validator 验证 - 规则(2007-03-13 10:57:00)
摘要:对表单的验证有两种:语法验证和语义验证。语法有效是指数据必须有正确的格式,如数据只能包含数字,语义有效是指必须符合逻辑,如时间值不能是一个未来的时间。
struts1.2增添了许多新特征如:validwhen验证规则(validator)
一开始Struts是使用formbean的validate()方法进行验证的。有时候则是在Action中进行验证。通过validator框架你可以不需要通过硬编码的方式进行验证,它使你可以在一个XML中配置对表单的验证,这样做可以很灵活的添加修改删除验证,同时可以重复使用验证规则。你可以使用它在客户端进行基于javascript和服务器端的验证,你也可以自定义验证方法。
具体的验证规则如下:
required
Checks that a field value is non-null and not an empty string.
requiredif
Only available for Struts 1.1. This validator allows one field to be specified as required if another field is null, not null, or equal to a specified value. This validator is deprecated, in favor of validwhen, in releases after Struts 1.1.
validwhen
Designed to replace requiredif, this validator is available in releases after Struts 1.1. This validator relies on a user-specified test expression that can include references to other fields, field values, and logical relationships.
minlength
Checks that the number of characters in......