<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 19, comments - 53, trackbacks - 0, articles - 283
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    Struts2 要點筆記(四)

    Posted on 2010-05-17 00:14 Gavin.lee 閱讀(250) 評論(0)  編輯  收藏 所屬分類: SSH2 --Struts2
    十九、文件上傳三部曲

    第一步、jar文件的準備

    commons-fileupload-1.2.1.jarcommons-io-1.3.2.jar

    第二步、把form表的enctype設(shè)置為:multipart/form-data

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    <html>

     
    <head>

        
    <title>My JSP 'employeeAdd.jsp' starting page</title>

        
    <meta http-equiv="pragma" content="no-cache">

        
    <meta http-equiv="cache-control" content="no-cache">

        
    <meta http-equiv="expires" content="0">

     
    </head>

     
    <body>

        
    <form action="${pageContext.request.contextPath}/control/employee/list_execute.action" enctype="multipart/form-data" method="post">

            文件:
    <input type="file" name="image">

            
    <input type="submit" value="上傳"/>

        
    </form>

     
    </body>

    </html>


    第三步、在
    Action類中添加以下屬性

    注意:

    可以設(shè)置Struts2的常量struts.multipart.maxSize來設(shè)置上傳文件大小

    可以得到上傳文件類型

    web上傳文件大小注意不要太大,一般的視頻網(wǎng)站上傳大文件是通過通訊軟件上傳的,即socket通訊

    多文件上傳:

    package cn.itcast.action;

    import java.io.File;

    import org.apache.commons.io.FileUtils;

    import org.apache.struts2.ServletActionContext;

    import com.opensymphony.xwork2.ActionContext;

    public class HelloWorldAction {

        
    private File[] image;

        
    private String[] imageFileName;

        
    public File[] getImage() {

           
    return image;

        }


        
    public void setImage(File[] image) {

           
    this.image = image;

        }


        
    public String[] getImageFileName() {

           
    return imageFileName;

        }


        
    public void setImageFileName(String[] imageFileName) {

           
    this.imageFileName = imageFileName;

        }


        
    public String addUI(){

           
    return "success";

        }


        
    public String execute() throws Exception{

           String realpath 
    = ServletActionContext.getServletContext().getRealPath("/images");

           System.out.println(realpath);

           
    if(image!=null){

               File savedir 
    = new File(realpath);

               
    if(!savedir.exists()) savedir.mkdirs();

               
    for(int i = 0 ; i<image.length ; i++){           

                  File savefile 
    = new File(savedir, imageFileName[i]);

                  FileUtils.copyFile(image[i], savefile);

               }


               ActionContext.getContext().put(
    "message""上傳成功");

           }


           
    return "success";

        }


    }




    二十、自定義攔截器

    注意:

    1.自定義攔截器的部署時候需要定義攔截器棧,在該棧中需要引入系統(tǒng)默認的攔截器,如果直接應用則會導致系統(tǒng)所有的攔截器對該action都會失效

    2.所以要注意攔截器的應用范圍:action/package

    3.每個包只能指定一個默認的攔截器

    <default-interceptor-ref name=”permissionStack” />

    4.一個action可以定義多個攔截器

    <interceptor-ref name=”interceptor1” />

    <interceptor-ref name=”interceptor2” />

    攔截器:

    package cn.itcast.interceptor;

    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionInvocation;
    import com.opensymphony.xwork2.interceptor.Interceptor;

    public class PermissionInterceptor implements Interceptor {

        
    public void destroy() {

        }


        
    public void init() {

        }


        
    public String intercept(ActionInvocation invocation) throws Exception {

      Object user 
    = ActionContext.getContext().getSession().get("user");

      
    if(user!=nullreturn invocation.invoke();  
      
    //如果user不為null,代表用戶已經(jīng)登錄,允許執(zhí)行action中的方法

      ActionContext.getContext().put(
    "message""你沒有權(quán)限執(zhí)行該操作");

      
    return "success";
        }

    }


    部署:

    <package name="employee" namespace="/control/employee" extends="struts-default">

           
    <interceptors>

               
    <interceptor name="permission" class="cn.itcast.interceptor.PermissionInterceptor"/>

               
    <interceptor-stack name="permissionStack">

                  
    <interceptor-ref name="defaultStack"/>

                  
    <interceptor-ref name="permission" />

               
    </interceptor-stack>

           
    </interceptors>

           
    <global-results>

               
    <result name="success">/WEB-INF/page/message.jsp</result>

           
    </global-results>

           
    <action name="list_*" class="cn.itcast.action.HelloWorldAction" method="{1}">

               
    <interceptor-ref name="permissionStack" />

           
    </action>

        
    </package>

     

    主站蜘蛛池模板: 免费无码VA一区二区三区| 亚洲AV无码专区亚洲AV桃| 日批视频网址免费观看| 亚洲精品人成无码中文毛片| 最新亚洲人成网站在线观看| 国产美女a做受大片免费| 亚洲人成色77777在线观看| 麻豆高清免费国产一区| 亚洲无线码一区二区三区| 亚洲综合av永久无码精品一区二区| 国产亚洲免费的视频看| 妞干网免费视频在线观看| 在线观看成人免费| 成人爽A毛片免费看| 亚洲免费在线视频观看| 日韩免费精品视频| 亚洲卡一卡二卡乱码新区| av无码久久久久不卡免费网站| 亚洲免费视频观看| 日本免费网站在线观看| 视频免费1区二区三区| 亚洲精品午夜国产VA久久成人| 久久成人免费电影| 99久久婷婷国产综合亚洲| 国产免费av片在线播放| 久久免费国产精品| 亚洲婷婷在线视频| 国产免费卡一卡三卡乱码| 国产性生大片免费观看性| 亚洲男人天堂影院| 国产精品高清全国免费观看| 国产免费高清69式视频在线观看| 久久精品亚洲中文字幕无码网站| 59pao成国产成视频永久免费| 亚洲欧好州第一的日产suv| 日韩精品亚洲aⅴ在线影院| 在线观看特色大片免费视频| 一个人看的免费视频www在线高清动漫 | 成人无遮挡裸免费视频在线观看| 亚洲AV无码一区二区三区牲色| 国产亚洲av人片在线观看|