Struts 2 OGNL封装请求问题

今天遇到Struts 2 OGNL封装请求的问题,是个坑。。。

先贴代码

JSP表单页面:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>



	
	编辑


	
		
		
		
		
		
	
	


ACTION封装请求参数:

package com.dickey.action;

import com.dickey.action.base.BaseAction;
import com.dickey.domain.Application;
import com.dickey.domain.User;
import com.opensymphony.xwork2.ActionContext;

public class ApplicationAction extends BaseAction{

	//省略其他……
	
	private Application application;
	

	//省略其他
	
	/*
	 * 修改提交
	 */
	public String editSubmit(){
		System.out.println(application);
		userService.updateApplication(application);
		return query();
	}
	
	
	
	/*
	 * Getters 和 Setters,省略
	 */

}

结果application死活为null,判断是struts2木有按OGNL表达式封装请求参数,为神马呢?跟踪struts的源码还是木有找到问题所在。

然后看到这个:http://blog.csdn.net/hanzhou4519/article/details/7583832

             
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                    dojo\..*,^struts\..*,^session\..*,
                                 ^request\..*,^application\..*,^servlet(Request|Response)\..*,parameters\...*
                
                
                
                    input,back,cancel,browse
                
                
                    input,back,cancel,browse
                
                
            

Struts 2默认的所有拦截器

然后发现了:


     dojo\..*,^struts\..*,^session\..*,
                                 ^request\..*,^application\..*,^servlet(Request|Response)\..*,parameters\...*

原来是 application打头的参数都被过滤掉了。。。。。

看来变量起名字,这里的关键字也要注意,不然就掉到这些坑里了。。。



你可能感兴趣的:(J2EE)