Struts 1 学习笔记-4-1(Struts动态表单的测试以及上传文件的应用)

一.使用Struts的动态表单可以免去再编写一个ActionForm的步骤,在有些地方比较适合使用 

1.首先编写一个简单的前台输入界面index.jsp:

<% @ page language="java" import="java.util.*" pageEncoding="GB18030" %>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
< html >
  
< head >
  
</ head >
  
  
< body >
    
< h1 > 测试ActionForm </ h1 >
    
    
< hr >
    
< li > 测试Struts动态表单 </ li >< br >
    
< form  action ="dynaticformtext.do" >
        Name : 
< input  type ="text"  name ="name" >< br >
        Age : 
< input  type ="text"  name ="age" >< br >
        
< input  type ="submit"  value ="sumbit" >
    
</ form >
    
</ body >
</ html >

 

2.编写Struts-config.xml(注意form-bean中type的路径,以及form-property的配置):

 

<? xml version="1.0" encoding="ISO-8859-1"  ?>

<! DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"
>

< struts-config >
    
    
< form-beans >
        
< form-bean  name ="dynaticActionForm"  type ="org.apache.struts.action.DynaActionForm" >
            
< form-property  name ="name"  type ="java.lang.String" ></ form-property >
            
< form-property  name ="age"  type ="java.lang.Integer" ></ form-property >
        
</ form-bean >
    
</ form-beans >
    
    
< action-mappings >
        
< action  path ="/dynaticformtext"  type ="com.codedestiny.struts.DynaticActionFormTestAction"  name ="dynaticActionForm"  scope ="request" >
            
< forward  name ="success"  path ="/index.jsp" ></ forward >
        
</ action >
    
</ action-mappings >
    
    
< message-resources  parameter ="MessageResources"   />
</ struts-config >

 

3.DynaticActionFormTestAction.java:(注意其中的数据在取出是要进行相应的格式转换)

package  com.codedestiny.struts;

import  javax.servlet.http.HttpServletRequest;
import  javax.servlet.http.HttpServletResponse;

import  org.apache.struts.action.Action;
import  org.apache.struts.action.ActionForm;
import  org.apache.struts.action.ActionForward;
import  org.apache.struts.action.ActionMapping;
import  org.apache.struts.action.DynaActionForm;

public   class  DynaticActionFormTestAction  extends  Action  {

    
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        
        DynaActionForm daf 
= (DynaActionForm)form;
        String name 
= (String)daf.get("name");
        
int age = (Integer)daf.get("age");
        
        System.out.println(
"Name : " + name);
        System.out.println(
"age : " + age);
        
        
return mapping.findForward("success");
    }

    
}

 

 

二.Struts的文件上传的测试:

注意:在Struts中file的类型为FormFIle,这一点要切记。还有form的提交方式要为post,enctype="multipart/form-data"

1.index.jsp:

<% @ page language="java" import="java.util.*" pageEncoding="GB18030" %>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
< html >
  
< head >
  
</ head >
  
  
< body >
    
< h1 > 测试ActionForm </ h1 >
    
    
< hr >
    
< li > 测试Struts动态表单 </ li >< br >
    
< form  action ="dynaticformtext.do" >
        Name : 
< input  type ="text"  name ="name" >< br >
        Age : 
< input  type ="text"  name ="age" >< br >
        
< input  type ="submit"  value ="sumbit" >
    
</ form >
    
    
< hr >
    
< li > 测试Struts文件上传 </ li >< br >
    
< form  action ="upload.do"  method ="post"  enctype ="multipart/form-data" >     
        
< input  type ="file"  name ="myFile" >< br >
        
< input  type ="text"  name ="title" >< br >
        
< input  type ="submit"  value ="upload" >
    
</ form >
        
  
</ body >
</ html >

 

2.编写ActionForm : UploadActionForm.java

package  com.codedestiny.struts;

import  org.apache.struts.action.ActionForm;
import  org.apache.struts.upload.FormFile;

public   class  UploadActionForm  extends  ActionForm  {
    
    
private FormFile myFile;  // the type of file must be FormFile
    private String title;
    
    
public FormFile getMyFile() {
        
return myFile;
    }

    
public void setMyFile(FormFile myFile) {
        
this.myFile = myFile;
    }

    
public String getTitle() {
        
return title;
    }

    
public void setTitle(String title) {
        
this.title = title;
    }

    
}

 

3.UploadAction.java:

package  com.codedestiny.struts;

import  java.io.FileOutputStream;

import  javax.servlet.http.HttpServletRequest;
import  javax.servlet.http.HttpServletResponse;

import  org.apache.struts.action.Action;
import  org.apache.struts.action.ActionForm;
import  org.apache.struts.action.ActionForward;
import  org.apache.struts.action.ActionMapping;
import  org.apache.struts.upload.FormFile;

public   class  UploadAction  extends  Action  {

    
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        
        UploadActionForm uaf 
= (UploadActionForm)form;
        FormFile myFile 
= uaf.getMyFile();
        String title 
= uaf.getTitle();
        
        System.out.println(
"Title : " + title);
        
        
if(myFile != null{
            System.out.println(
"MyFile : " + myFile.getFileName());
            FileOutputStream fos 
= new FileOutputStream("c:/" + myFile.getFileName());
            fos.write(myFile.getFileData());
            fos.flush();
            fos.close();
        }

        
        
return mapping.findForward("success");
    }

}

 

4.struts-config.xml:

<? xml version="1.0" encoding="ISO-8859-1"  ?>

<! DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"
>

< struts-config >
    
    
< form-beans >
        
< form-bean  name ="dynaticActionForm"  type ="org.apache.struts.action.DynaActionForm" >
            
< form-property  name ="name"  type ="java.lang.String" ></ form-property >
            
< form-property  name ="age"  type ="java.lang.Integer" ></ form-property >
        
</ form-bean >
        
< form-bean  name ="uploadActionForm"  type ="com.codedestiny.struts.UploadActionForm" >
        
</ form-bean >
    
</ form-beans >
    
    
< action-mappings >
        
< action  path ="/dynaticformtext"  type ="com.codedestiny.struts.DynaticActionFormTestAction"  name ="dynaticActionForm"  scope ="request" >
            
< forward  name ="success"  path ="/index.jsp" ></ forward >
        
</ action >
        
< action  path ="/upload"  type ="com.codedestiny.struts.UploadAction"  name ="uploadActionForm"  scope ="request" >
            
< forward  name ="success"  path ="/index.jsp" ></ forward >
        
</ action >
    
</ action-mappings >
    
    
< message-resources  parameter ="MessageResources"   />
</ struts-config >

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值