struts2 笔记4

Strtus2 OGNL 表达式的结合

描述:struts2 为OGNL表达式准备了两个对象
        ActionContext:最为ognl表达式的Context
        ValueStack:最为ognl表达式的Root
    以上两个对象的创建都是StrutsPrepareAndExecuteFilter中准备好的

ognl和Struts使用上结合:

表单提交,其中提交的键可以看作是ognl表达式
Action中有User对象,我们想直接将表单参数提交到User对象中封装做法:
    1,提交的参数的键=>user.name就会在值栈中查找名为user的对象,并赋值到该对象的name属性。
    2,使用ModelDriven,我们的Action在getModel方法中将User的对象返回,ModelDriven拦截器
        会将我们返回的User对象放入之战中(栈顶),那么表单中直接提交name,将会把name值装入栈顶的user对象的name属性。        
文件下载中文件乱码问题解决

       application/zip
       zip
       
       attachment;filename="${fileName}"
       10240


public class FileDownAction extends ActionSupport {
   private String fileName;
   public InputStream getZip() {
       ServletContext sc = ServletActionContext.getServletContext();
      return sc.getResourceAsStream("/WEB-INF/shanping.zip");
   }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    /**
     * 获取下载显示的文件名称
     *
     * @return
     */
    public String getDownloadFileName() {
        String downFileName = fileName;
        try {
            downFileName = new String(downFileName.getBytes(), "ISO8859-1");
        } catch (UnsupportedEncodingException e) {
//            log.error("获取下载显示的文件名称",e);
        }
        System.out.println("文件名称:"+downFileName);
        return downFileName;
    }


    public String excute(){
        return SUCCESS;
    }
}
标签
Struts2标签中OGNL表达式(

Struts2 标签

标签分为两个部分 “通用标签”和“ui 标签”两大部分

你可能感兴趣的:(struts2 笔记4)