cisco CCNA第三学期第二章官方测试题
2010-04-16 14:46
357 查看
最近看到了webwork输入校验,相关代码如下:
LoginAction.java代码
import com.opensymphony.xwork.ActionSupport;
......
public class LoginAction extends ActionSupport implements Action, ModelDriven {
private final static String LOGIN_FAIL="loginfail";
LoginInfo loginInfo = new LoginInfo();
public String execute() throws Exception {
if ("erica".equalsIgnoreCase(loginInfo.getUsername()) && "mypass".equals(loginInfo.getPassword())) {
return SUCCESS;
} else {
System.out.println("=======================================================");
return LOGIN_FAIL;
}
}
public Object getModel() {
return loginInfo;
}
}
LoginAction-validation.xml和LoginAction.java在同一个目录下
LoginAction-validation.xml代码
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWorkValidator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="model.username">
<field-validator type="requiredstring">
<message>Please enter Username!</message>
</field-validator>
</field>
<field name="model.password">
<field-validator type="stringlength">
<param name="minLength">4</param>
<param name="maxLength">6</param>
<message>Password length must between ${minLength} and ${maxLength} chars!</message>
</field-validator>
</field>
</validators>
xwork.xml代码
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-1.0.dtd">
<xwork>
<include file="webwork-default.xml" />
<package name="default" extends="webwork-default">
<interceptors>
<interceptor-stack name="modelParamsStack">
<interceptor-ref name="params" />
<interceptor-ref name="model-driven" />
</interceptor-stack>
</interceptors>
<action name="login" class="net.xiaxin.webwork.action.LoginAction">
<result name="success" type="dispatcher">
<param name="location">/main.jsp</param>
</result>
<result name="loginfail" type="dispatcher">
<param name="location">/validatorindex.jsp</param>
</result>
<interceptor-ref name="modelParamsStack"/>
<interceptor-ref name="validationWorkflowStack" />
</action>
</package>
</xwork>
validators.xml和xwork.xml都放在classes根目录下
validators.xml代码
<validators>
<validator name="requiredstring" class="com.opensymphony.xwork.validator.validators.RequiredStringValidator"/>
<validator name="stringlength" class="com.opensymphony.xwork.validator.validators.StringLengthFieldValidator"/>
</validators>
validatorindex.jsp代码
<%@ taglib prefix="ww" uri="/webwork"%>
<style type="text/css">
.errorMessage {
color: red;
}
</style>
<form action="login.action">
登录<br>
<ww:if test="hasFieldErrors()">
<span class="errorMessage">
<b>Errors:</b><br>
<ww:iterator value="fieldErrors">
<li><ww:property value="value[0]"/></li>
</ww:iterator>
</span>
</ww:if>
用户名:
左尖括号 input type="text" name="model.username" />
密 码 :
左尖括号 input type="password" name="model.password" />
左尖括号 input type="submit" value="提交" name="B1"/>
左尖括号 input type="reset" value="重置" name="B2"/>
</form>
运行时,若输入正确的用户名和密码,按提交按钮后可以转向正确的页面。若输入错误的用户名或密码,按提交按钮则页面空白一片。在myeclipse下看到如下信息:
DefaultWorkflowInterceptor - Invoking validate() on action net.xiaxin.webwork.action.LoginAction@a47cc3
PrefixMethodInvocationUtil - cannot find method [validateExecute] in action [net.xiaxin.webwork.action.LoginAction@a47cc3]
PrefixMethodInvocationUtil - cannot find method [validateDoExecute] in action [net.xiaxin.webwork.action.LoginAction@a47cc3]
DefaultWorkflowInterceptor - Errors on action net.xiaxin.webwork.action.LoginAction@a47cc3, returning result name 'input'
DefaultActionInvocation - No result defined for action net.xiaxin.webwork.action.LoginAction and result input
这是什么原因呢?
LoginAction.java代码
import com.opensymphony.xwork.ActionSupport;
......
public class LoginAction extends ActionSupport implements Action, ModelDriven {
private final static String LOGIN_FAIL="loginfail";
LoginInfo loginInfo = new LoginInfo();
public String execute() throws Exception {
if ("erica".equalsIgnoreCase(loginInfo.getUsername()) && "mypass".equals(loginInfo.getPassword())) {
return SUCCESS;
} else {
System.out.println("=======================================================");
return LOGIN_FAIL;
}
}
public Object getModel() {
return loginInfo;
}
}
LoginAction-validation.xml和LoginAction.java在同一个目录下
LoginAction-validation.xml代码
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWorkValidator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="model.username">
<field-validator type="requiredstring">
<message>Please enter Username!</message>
</field-validator>
</field>
<field name="model.password">
<field-validator type="stringlength">
<param name="minLength">4</param>
<param name="maxLength">6</param>
<message>Password length must between ${minLength} and ${maxLength} chars!</message>
</field-validator>
</field>
</validators>
xwork.xml代码
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-1.0.dtd">
<xwork>
<include file="webwork-default.xml" />
<package name="default" extends="webwork-default">
<interceptors>
<interceptor-stack name="modelParamsStack">
<interceptor-ref name="params" />
<interceptor-ref name="model-driven" />
</interceptor-stack>
</interceptors>
<action name="login" class="net.xiaxin.webwork.action.LoginAction">
<result name="success" type="dispatcher">
<param name="location">/main.jsp</param>
</result>
<result name="loginfail" type="dispatcher">
<param name="location">/validatorindex.jsp</param>
</result>
<interceptor-ref name="modelParamsStack"/>
<interceptor-ref name="validationWorkflowStack" />
</action>
</package>
</xwork>
validators.xml和xwork.xml都放在classes根目录下
validators.xml代码
<validators>
<validator name="requiredstring" class="com.opensymphony.xwork.validator.validators.RequiredStringValidator"/>
<validator name="stringlength" class="com.opensymphony.xwork.validator.validators.StringLengthFieldValidator"/>
</validators>
validatorindex.jsp代码
<%@ taglib prefix="ww" uri="/webwork"%>
<style type="text/css">
.errorMessage {
color: red;
}
</style>
<form action="login.action">
登录<br>
<ww:if test="hasFieldErrors()">
<span class="errorMessage">
<b>Errors:</b><br>
<ww:iterator value="fieldErrors">
<li><ww:property value="value[0]"/></li>
</ww:iterator>
</span>
</ww:if>
用户名:
左尖括号 input type="text" name="model.username" />
密 码 :
左尖括号 input type="password" name="model.password" />
左尖括号 input type="submit" value="提交" name="B1"/>
左尖括号 input type="reset" value="重置" name="B2"/>
</form>
运行时,若输入正确的用户名和密码,按提交按钮后可以转向正确的页面。若输入错误的用户名或密码,按提交按钮则页面空白一片。在myeclipse下看到如下信息:
DefaultWorkflowInterceptor - Invoking validate() on action net.xiaxin.webwork.action.LoginAction@a47cc3
PrefixMethodInvocationUtil - cannot find method [validateExecute] in action [net.xiaxin.webwork.action.LoginAction@a47cc3]
PrefixMethodInvocationUtil - cannot find method [validateDoExecute] in action [net.xiaxin.webwork.action.LoginAction@a47cc3]
DefaultWorkflowInterceptor - Errors on action net.xiaxin.webwork.action.LoginAction@a47cc3, returning result name 'input'
DefaultActionInvocation - No result defined for action net.xiaxin.webwork.action.LoginAction and result input
这是什么原因呢?
相关文章推荐
- cisco CCNA第三学期第二章官方测试题
- Cisco官方CCNA在线考试模拟
- 思科CCNA第三学期第二章答案
- 最新CISCO官方CCNA模拟器――PacketTracer4.1使用教程
- cisco-ccna-第二章测试work1汉语
- cisco CCNA第三学期第一章官方测试题
- CCNA官方章节考试题之《网络通信》-第二章
- CISCO官方CCNA模拟器——PacketTracer5
- CCNA实验二(cisco发现协议CDP)
- CISCO CCNA EIGRP
- cisco-ccna-第七章测试-work1-汉语
- CCNA-第二章 TCP IP简介
- 华为的hcne考试与cisco的CCNA认证考试
- CliffsTestPrep Cisco CCNA
- Welcome to Swift (苹果官方Swift文档初译与注解十五)---94~100页(第二章)
- Welcome to Swift (苹果官方Swift文档初译与注解十七)---108~115页(第二章)
- Welcome to Swift (苹果官方Swift文档初译与注解十八)---116~122页(第二章)
- 原创:自己收集的《Cisco官方出品CCIE R&S系列教材》
- Cisco CCNA考试题库大全
- Welcome to Swift (苹果官方Swift文档初译与注解八)---53~57页(第二章)