当我将autowiring interceptor(interceptor ref name="autowiring")放在spring.xml中的action标记中时,index.jsp中的struts标记无法与该action类的setter进行映射。当我从action标签中删除autowiring标签时,在这种情况下,jsp的struts标签能够与action类的setter进行映射。
欢迎您的任何帮助。如果你需要什么样的例子,请告诉我。
<s:textfield name="name" label="Name" />
<s:textfield name="salary" label="Salary" />
<s:submit value="Add Record" />
那么这个名为"name"one_answers"salary"的struts标记不会在用setter/getter相同名称表示的操作类中设置值。
public void setName(String name) {
this.name = name;
}
public void setSalary(String salary) {
this.salary = salary;
}
如果在某个操作上定义了拦截器,则必须在该操作上定义所有拦截器。如果没有设置您的参数,那么无论"自动布线"拦截器引用是什么,都不包括"参数"堆栈,即负责将表单属性传输到操作的拦截器。
Umesh是正确的,如果你使用Spring,插件会为你处理注入,你不需要在你的操作中手动定义"自动布线"插件。如果您只是删除了拦截器定义,那么您的参数应该设置为正常,并且操作仍然应该连接起来。
话虽如此–在操作中手动使用会话工厂不会被视为最佳实践。任何会话工厂逻辑都应该封装在DAO/services/等中。操作应该很少(读作:从不)知道持久性层。