2011-10-05 57 views
0

我在我的任务中使用了Struts 2-Spring框架。struts 2 Bean没有在动作类中填充

我已经定义在支柱豆2个Action类执行的每一个动作之前检查授权

一个拦截器。

该bean用于在jsp页面上定义控件,如文本框,单选按钮等。

在本页面提交时,控件适当地定义到动作类,但在动作类中找到bean对象为null。因此无法执行进一步的操作。

删除拦截器正常工作。

任何指针将不胜感激。

+1

它总是很难说什么没有看到代码的问题。 –

+0

你可以提供struts.xml,因为它看起来你的配置有问题 –

+2

听起来你已经重新配置了动作的拦截器堆栈,但只定义了你的,而不是整个堆栈 - 就像其他注释状态一样,没有任何实际的信息,我们只是猜测。 –

回答

0

我没有定义在struts.xml中定义的拦截器的栈。

在struts.xml中其工作正常定义如下堆叠后:

<interceptors> 
<interceptor-stack name="applicationStack"> 
    <interceptor-ref name="exception"/> 
    <interceptor-ref name="alias"/> 
    <interceptor-ref name="servletConfig"/> 
    <interceptor-ref name="i18n"/> 
    <interceptor-ref name="prepare"/> 
    <interceptor-ref name="chain"/> 
    <interceptor-ref name="scopedModelDriven"/> 
    <interceptor-ref name="modelDriven"/> 
    <interceptor-ref name="fileUpload"/> 
    <interceptor-ref name="checkbox"/> 
    <interceptor-ref name="multiselect"/> 
    <interceptor-ref name="staticParams"/> 
    <interceptor-ref name="actionMappingParams"/> 
    <interceptor-ref name="params"> 
     <param name="excludeParams">dojo\..*,^struts\..*</param> 
    </interceptor-ref> 
    <interceptor-ref name="conversionError"/> 
    <interceptor-ref name="validation"> 
     <param name="excludeMethods">input,back,cancel,browse</param> 
    </interceptor-ref> 
    <interceptor-ref name="workflow"> 
     <param name="excludeMethods">input,back,cancel,browse</param> 
    </interceptor-ref> 
    <interceptor-ref name="debugging"/> 

    <!-- User defined interceptor --> 
    <interceptor-ref name="contextSecurityInterceptor"/> 
</interceptor-stack>