??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美一区二区三区在线播放 ,精品三级久久久,国产精品美女久久久久久2018 http://www.aygfsteel.com/xiaoyi/category/33884.html阛_d风雨?让我们在雨中毅然前行,收获每一份喜悦的Ƣ笑o(∩_?o...zh-cnTue, 07 Feb 2012 17:57:36 GMTTue, 07 Feb 2012 17:57:36 GMT60毅收藏整理----解决struts、jsp下蝲文g时中文文件名q问题http://www.aygfsteel.com/xiaoyi/articles/369461.html可爱的小?/dc:creator>可爱的小?/author>Mon, 06 Feb 2012 02:49:00 GMThttp://www.aygfsteel.com/xiaoyi/articles/369461.htmlhttp://www.aygfsteel.com/xiaoyi/comments/369461.htmlhttp://www.aygfsteel.com/xiaoyi/articles/369461.html#Feedback0http://www.aygfsteel.com/xiaoyi/comments/commentRss/369461.htmlhttp://www.aygfsteel.com/xiaoyi/services/trackbacks/369461.htmlҎ一Q原来处理下载的代码如下Q?n...  阅读全文

]]>
毅也玩struts2之validateҎ单的数据验证http://www.aygfsteel.com/xiaoyi/articles/258477.html可爱的小?/dc:creator>可爱的小?/author>Sun, 08 Mar 2009 08:46:00 GMThttp://www.aygfsteel.com/xiaoyi/articles/258477.htmlhttp://www.aygfsteel.com/xiaoyi/comments/258477.htmlhttp://www.aygfsteel.com/xiaoyi/articles/258477.html#Feedback0http://www.aygfsteel.com/xiaoyi/comments/commentRss/258477.htmlhttp://www.aygfsteel.com/xiaoyi/services/trackbacks/258477.html

?/span>Struts2中最单的验证数据的方法是使用validate。我们从ActionSupportcȝ源代码中可以看到Q?/span>ActionSupportcdC一?/span>Validateable接口。这个接口只有一?/span>validateҎ。如?/span>ActioncdCq个接口Q?/span>Struts2在调?/span>executeҎ之前首先会调用这个方法,我们可以?/span>validateҎ中验证,如果发生错误Q可以根据错误的level选择字段U错误,q是动作U错误。ƈ且可使用addFieldError?/span>addActionError加入相应的错误信息,如果存在Action?/span>Field错误Q?/span>Struts2会返?#8220;input”Q这个ƈ不用开发h员写Q由Struts2自动q回Q,如果q回?#8220;input”Q?/span>Struts2׃会再调用executeҎ了。如果不存在错误信息Q?/span>Struts2在最后会调用executeҎ?/span>

q两?/span>addҎ?/span>ActionErrorscM?/span>addҎcMQ只?/span>addҎ的错误信息需要一?/span>ActionMessage对象Q比较麻烦。除了加入错误信息外Q还可以使用addActionMessageҎ加入成功提交后的信息。当提交成功后,可以昄q些信息?/span>

以上三个addҎ都在ValidationAware接口中定义,q且?/span>ActionSupportcM有一个默认的实现。其实,?/span>ActionSupportcM的实现实际上是调用了ValidationAwareSupport中的相应的方法,也就是这三个addҎ是在ValidationAwareSupportcM实现的,代码如下Q?br />
private final ValidationAwareSupport validationAware = new ValidationAwareSupport();

public void addActionError(String anErrorMessage) 
{      validationAware.addActionError(anErrorMessage);
}
public void addActionMessage(String aMessage) 
{
    validationAware.addActionMessage(aMessage);
}
public void addFieldError(String fieldName, String errorMessage) 
{
    validationAware.addFieldError(fieldName, errorMessage);
}

下面我们来实C个简单的验证E序Q来体验一?/span>validateҎ的用?/span>

先来?/span>Web根目录徏立一个主面Q?/span>validate.jspQ,代码如下Q?/span>


<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
  
<head>
    
<title>验证数据</title>
  
</head>
  
  
<body>
    
<s:actionerror/>
    
<s:actionmessage/>
    
<s:form action="validate.action"  theme="simple">
        输入内容Q?/span><s:textfield name="msg"/>
         
<s:fielderror key="msg.hello" />
         
<br/> 
        
<s:submit/>
    
</s:form>
  
</body>
</html>

在上面的代码中,使用?/span>Struts2?/span>tagQ?/span><s:actionerror>?/span><s:fielderror>?/span><s:actionmessage>Q分别用来显C动作错误信息,字段错误信息Q和动作信息。如果信息ؓI,则不昄?/span>

现在我们来实C个动作类Q代码如下:


package action;

import javax.servlet.http.*;

import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.*;

public class ValidateAction extends ActionSupport
{
    
private String msg;
    
public String execute() 
    {
        System.out.println(SUCCESS);
        
return SUCCESS;
    }
    
public void validate()
    {
        
if(!msg.equalsIgnoreCase("hello"))
        {
            System.out.println(INPUT);
            
this.addFieldError("msg.hello""必须输入hello!");
            
this.addActionError("处理动作p|!");
        }
        
else
        {
            
this.addActionMessage("提交成功");
        }
    }
    
public String getMsg()
    {
        
return msg;
    }
    
public void setMsg(String msg)
    {
        
this.msg = msg;
    }
}

大家从上面的代码可以看出Q?/span>Field错误需要一?/span>keyQ一般用来表C是哪一个属性出的错误)Q?/span>Action错误?/span>Action消息只要提供一个信息字W串可以了?/span>

最后来配置一下这?/span>ActionQ代码如下:

<package name="demo" extends="struts-default">
    
<action name="validate" class="action.ValidateAction">
        
<result name="success">/error/validate.jsp</result>
        
<result name="input">/error/validate.jsp</result>
    
</action>
</package>

假设应用E序的上下文路径?/span>demoQ则可通过如下?/span>URL来测试程序:

http://localhost:8080/demo/validate.jsp

我们q可以?/span>ValidationAware接口的其他方法(?/span>ValidationAwareSupportcd玎ͼ获得或设|字D错误信息、动作错误信息以及动作消息。如hasActionErrorsҎ判断是否存在动作层的错误Q?/span>getFieldErrors获得字段错误信息Q一?/span>Map对象Q。下面是ValidationAware接口提供的所有的ҎQ?/span>


package com.opensymphony.xwork2;

import java.util.Collection;
import java.util.Map;

public interface ValidationAware
{
    
void setActionErrors(Collection errorMessages);
    Collection getActionErrors();

    
void setActionMessages(Collection messages);
    Collection getActionMessages();
    
void setFieldErrors(Map errorMap);
    Map getFieldErrors();
    
void addActionError(String anErrorMessage);
    
void addActionMessage(String aMessage);
    
void addFieldError(String fieldName, String errorMessage);
    
boolean hasActionErrors();
    
boolean hasActionMessages();
    
boolean hasErrors();
    
boolean hasFieldErrors();
}


]]>
毅也玩struts2之helloWorldE序改进?增加了验证功能和struts标签使用)http://www.aygfsteel.com/xiaoyi/articles/233430.html可爱的小?/dc:creator>可爱的小?/author>Thu, 09 Oct 2008 12:30:00 GMThttp://www.aygfsteel.com/xiaoyi/articles/233430.htmlhttp://www.aygfsteel.com/xiaoyi/comments/233430.htmlhttp://www.aygfsteel.com/xiaoyi/articles/233430.html#Feedback0http://www.aygfsteel.com/xiaoyi/comments/commentRss/233430.htmlhttp://www.aygfsteel.com/xiaoyi/services/trackbacks/233430.html阅读全文

]]>
毅也玩struts2?-->HelloWorldE序http://www.aygfsteel.com/xiaoyi/articles/233262.html可爱的小?/dc:creator>可爱的小?/author>Wed, 08 Oct 2008 20:20:00 GMThttp://www.aygfsteel.com/xiaoyi/articles/233262.htmlhttp://www.aygfsteel.com/xiaoyi/comments/233262.htmlhttp://www.aygfsteel.com/xiaoyi/articles/233262.html#Feedback0http://www.aygfsteel.com/xiaoyi/comments/commentRss/233262.htmlhttp://www.aygfsteel.com/xiaoyi/services/trackbacks/233262.html目l构
五个struts2必备jar?可以?a >http://www.struts.apache.org下蝲最新的struts2,struts2采用qo器org.apache.struts2.dispatcher.FilterDispatcher来过滤客L发送给服务器的所有请求。struts2.0是strtus1.*与webwork的结合。struts2.0会自动到工程下classes下寻找struts.xml(struts2.0的配|文?来解析配|的action{东东。废话少_代码如下Q?br /> 开发步?
1?下蝲struts2.0q添加核心jar?br /> 2、写面
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
  
<head>
    
<title>struts的Hello WorldE序</title>
  
</head>
  
<body>
       
<form name='testform' method='post' action="login.action">
       用户名:
<input name='username'><br>
        
密码Q?amp;nbsp;&nbsp;&nbsp;&nbsp;<input name='pwd' type
='password'><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        
<input type='submit' value=' ?nbsp; ?nbsp;'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

        
&nbsp;<input type='reset' value=' ?nbsp; |?nbsp;'>
       
</form>
  
</body>
</html>

show.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<html>
<head>
    
<title>昄l果</title>
</head>
<body>
    
<h3>用户?-->${requestScope.username}<br>
        密码--->${requestScope.pwd}
<br>
</body>
</html>

3、写action
package com.yz.struts2.actions;

public class loginAction 
{
    
    
private
 String username;
    
private
 String pwd;
    
public String getUsername() 
{
        
return
 username;
    }

    
public void setUsername(String username) {
        
this.username =
 username;
    }

    
public String getPwd() {
        
return
 pwd;
    }

    
public void setPwd(String pwd) {
        
this.pwd =
 pwd;
    }

    
    
public String helloWorld(){
        System.out.println(
"用户?-->"+
username);
        System.out.println(
"密码--->"+
pwd);
        
return "ok"//查找名字为ok的resultQ相当于struts1.*的foward?/span>

    }

}

4、配|struts2.0开发环?--struts.xml和web.xml
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
    
<!-- struts2采用qo器过滤客L发送给服务器的所有请?nbsp;-->
    
<filter>
        
<filter-name>struts2</filter-name>
        
<filter-class>
            org.apache.struts2.dispatcher.FilterDispatcher
        
</filter-class>
    
</filter>
    
<filter-mapping>
        
<filter-name>struts2</filter-name>
        
<url-pattern>/*</url-pattern>
    
</filter-mapping>
    
<welcome-file-list>
        
<welcome-file>index.jsp</welcome-file>
    
</welcome-file-list>
</web-app>
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd"
>
<struts>
<!-- struts2会自动到classes下找struts.xmlQ?br /> 直接攑֜src下工具会自动把src下的文g~译到classes?nbsp;
dtd头信息表C?nbsp;sturs为根标签
-->
    
<!-- struts2q个包承sturs2内置的包struts-default -->
    
<package name="struts2" extends="struts-default">
        
<!-- 配置action
            nameQ?nbsp;对应index.jsp面中form的action= login.action 的login
            struts默认所有以点actionl尾的请求交lstruts处理Q因为承自webwork的特性,习惯于这栗?br />             class: action对应的类,包名点类名全路径(com.yz.struts2.loginAction)
            methodQ请求该action时自动执行的ҎQ如果没有配|默认执行executeҎ
         
-->
        
<action 
            
name="login" 
            class
="com.yz.struts2.actions.loginAction"
            method
="helloWorld" 
            converter
=""
        
>
        
<!-- result默认的name为success -->
        
<result name="ok">/show.jsp</result>
        
</action>
        
    
</package>
</struts>


]]>
վ֩ģ壺 | | 㶫ʡ| DZ| | | | ˳ƽ| | ¦| ͨ| Ϫ| | ¬| н| | º| | | | | | °| ɽ| | կ| | ̩| | ˮ| ɽ| | | | Դ| | | ʩ| Ԫ| Ϫ| |