applicationcontext.xml里没有为其配置相应的bean吧,就是你这里的sid.不过bean都是注入的对象,属性应该不可以。建议你把sid封装成对象的属性。

解决方案 »

  1.   


    applicationContext.xml中没有配置其他bean了。你说把sid封装成一个对象这可以,但是我的数据都是页面提交上来的。spring也可以给某个对象注入属性值,这是可以的。我这儿全部是用的注解。
      

  2.   

    你把applicationContext.xml的代码贴出来
      

  3.   


    <?xml version="1.0" encoding="UTF-8"?>
    <beans default-autowire="no"
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.2.xsd">

    <context:component-scan base-package="org.course"/>
    <context:annotation-config/>

    <bean id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="course" />
    </bean>
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
    </bean>
    <tx:annotation-driven transaction-manager="transactionManager"/>

    </beans>
      

  4.   

    配置好像没问题;
    你这里<form action="/course/studentRegisterAction" method="post">
    是不是有问题啊?改成studentRegisterAction试试
      

  5.   

    哦,不对,你在struts.xml中的Action配置是小写的,错了,类名要大写
      

  6.   

    studentRegisterHandler 这里应该改为StudentRegisterHandler
      

  7.   


    提交成功了的。并且Action进行了处理。可就是这个字段为null.   表示快疯了。
      

  8.   

     - -!!!小写的。代表着struts去spring找相应的action实例,默认名为类名,并且开头字母小写。除非在@Controller( name = "xxxxxx")...
      

  9.   

    <constant name="struts.objectFactory" value="spring"/>
    这句话不需要加
    struts默认的就是spring
      

  10.   

    嗯,加了也没错啊。可是问题不在这儿啊。为什么提交的数据获取不到?还是觉得说这个action可以不拿给spring进行管理?望回复。
      

  11.   

    @Transactional
    @Controller
    这个都不用写的,在web.xml中配置好就行了
    像这样:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <filter>
    <filter-name>struts</filter-name>

    <filter-class>
    org.apache.struts2.dispatcher.FilterDispatcher
    </filter-class>
    <!--  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>    -->
    <init-param>
    <param-name>config</param-name>
    <param-value>
    struts-default.xml,struts-plugin.xml,config/struts/struts.xml
    </param-value>
    </init-param>
    </filter>
    <listener>
    <listener-class>
    org.springframework.web.context.ContextLoaderListener
    </listener-class>
    </listener>
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
    <!-- classpath:config/spring/applicationContext*.xml -->
    classpath:config/spring/applicationContext.xml
    </param-value>
    </context-param> <filter-mapping>
    <filter-name>struts</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping> <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    </web-app>
      

  12.   

    sib是谁的属性?比如:Student实体有sid属性。
    写一个Stuedent类,作为实体bean;
    在Action中声明一个Student属性。提供get,set方法,就能自动封装数据了。
      

  13.   

    @Controller
    public class UserAction extends ActionSupport implements ModelDriven<User>{
    private static final long serialVersionUID = 1L;
    User user=new User();
    public User getModel() {
    return user;
    }我一般是这样写的。struts2会自动封装id,name,password属性到user中了。
    这些都是基础。多多加油。
      

  14.   


    你这上面的配置不就是启动struts和spring吗?没见什么特别的啊。你还说事务都不加?什么啊没明白
      

  15.   

    新问题:我用spring管理struts,然后我去掉了spring的配置文件applicationContext.xml中关于JPA的配置以及事务配置,结果sid又有值了。疯了,我感觉是哪里冲突了。大神啊大神在哪里?
      

  16.   

    studentRegisterHandler 这里应该改为StudentRegisterHandler 
      

  17.   

    你的代码都没问题。
    试试这个
    <constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory"/>
      

  18.   

    你的那个类的提交方式不是由Spring来管理了吗?http://package.qunar.com/guangzhou_%E5%8C%97%E4%BA%AC%2C%E9%95%BF%E5%9F%8E/NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL_NULL?from=pk_sch_index&pageName=list&thispage=list&cCity=&planFrom=list&s1=desc&s2=asc&s3=asc&v=0那个Class里面的路径应该是你Spring中的依赖的对象。
      

  19.   

    默认是类名,并且开头字母小写。这相当于一个bean。
      

  20.   

    是啊,我是这么写的啊。。<package name="org.course.action" extends="struts-default">
          <action name="studentRegisterAction" class="studentRegisterHandler">
              <result>/index.jsp</result>
          </action>
      </package>
      

  21.   

    不行。其实这个常量没必要配置,因为从struts2.x的时候,记不清楚了,struts默认就是交给spring管理了,只要类路径下面有struts2-spring-plugin.jar这个jar包就自动装载。。写没写没关系。
      

  22.   

    楼主解决了吗?我也遇到这个问题啦,spring如何封装jsp传递的值啊?