1、目的:实现 学院、专业、班级的级联,采用的框架为Struts2+spring+ibatis+dwr,但是在使用dwr时,直接去读的service中的方法,和struts没有关系!
2、第一步就出现问题,无法读出学院信息
(1)在java中的代码如下CollegeServiceImpl.java:
//查询所有学院
@SuppressWarnings("unchecked")
public List<College> getAllCollege() {
return collegeDAO.getAllCollege();
}
我做过测试在这个方法里能打印出学院的列表。(2)jsp页面中的代码listCollege.jsp <script type='text/javascript' src='/student/dwr/interface/DWR_getCollege.js'></script>
<script type='text/javascript' src='/student/dwr/interface/DWR_getZy.js'></script>
<script type='text/javascript' src='/student/dwr/interface/DWR_getBj.js'></script>
<script type='text/javascript' src='/student/dwr/engine.js'></script>
<script type="text/javascript" src="/student/dwr/util.js"></script>
<script type="text/javascript"> function getAllCollege(){
DWR_getCollege.getAllCollege(setCollege);
}
function setCollege(data){
college.innerHTML="";//如果有值就清空
college.add(new Option('请选择',''));
for(var i=0;i<data.length;i++){
alert(data.Cxy);
//college.add(new Option(data.Cxy,data.Markxy));
}
}
我只贴出了一个函数,这个函数功能就是获得学院的列表。但是每次测试出来的值都为空?为什么呢?
(3)相关的配置文件dwr.xml
<allow>
<create creator="spring" javascript="DWR_getCollege">
<param name="beanName" value="collegeService" />
</create>
<create creator="spring" javascript="DWR_getZy">
<param name="beanName" value="zyService" />
</create>
<create creator="spring" javascript="DWR_getBj">
<param name="beanName" value="bjService" />
</create>
<create creator="new" javascript="service">
<param name="class" value="helloWorld.Service" />
</create>
<convert converter="bean" match="com.student.model.College">
<param name="include" value="Id,Cxy,Exy,Markxy" />
</convert>
<convert converter="bean" match="com.student.model.Zy">
<param name="include" value="Id,Czy,Ezy,Markzy" />
</convert>
<convert converter="bean" match="com.student.model.Bj">
<param name="include" value="Id,Cbj,Ebj,Markbj" />
</convert> </allow>
web.xml的配置:
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>
org.directwebremoting.servlet.DwrServlet
</servlet-class>
<!--
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/dwr.xml</param-value>
</init-param>
-->
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet> <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</context-param>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping> <listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
spring中的配置:
<!-- 学院开始 -->
<bean id="collegeDAO" class="com.student.dao.CollegeDAOImpl">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="sqlMapClient">
<ref local="sqlMapClient" />
</property>
</bean>
<bean id="collegeService" parent="baseTransactionProxy">
<property name="target">
<bean class="com.student.service.CollegeServiceImpl">
<property name="collegeDAO">
<ref bean="collegeDAO" />
</property>
</bean>
</property>
</bean>
<bean id="collegeAction" class="com.student.action.CollegeAction"
singleton="false">
<property name="collegeService">
<ref bean="collegeService" />
</property>
</bean>
<!-- 学院结束 -->
3、问题描述:第一步在jsp页面中就无法获得学院的列表,但是在CollegeServiceImpl.java这个中的方法是能够获得学院列表的?请高人指点这到底是什么原因,是配置出错了吗?还是其他原因?
2、第一步就出现问题,无法读出学院信息
(1)在java中的代码如下CollegeServiceImpl.java:
//查询所有学院
@SuppressWarnings("unchecked")
public List<College> getAllCollege() {
return collegeDAO.getAllCollege();
}
我做过测试在这个方法里能打印出学院的列表。(2)jsp页面中的代码listCollege.jsp <script type='text/javascript' src='/student/dwr/interface/DWR_getCollege.js'></script>
<script type='text/javascript' src='/student/dwr/interface/DWR_getZy.js'></script>
<script type='text/javascript' src='/student/dwr/interface/DWR_getBj.js'></script>
<script type='text/javascript' src='/student/dwr/engine.js'></script>
<script type="text/javascript" src="/student/dwr/util.js"></script>
<script type="text/javascript"> function getAllCollege(){
DWR_getCollege.getAllCollege(setCollege);
}
function setCollege(data){
college.innerHTML="";//如果有值就清空
college.add(new Option('请选择',''));
for(var i=0;i<data.length;i++){
alert(data.Cxy);
//college.add(new Option(data.Cxy,data.Markxy));
}
}
我只贴出了一个函数,这个函数功能就是获得学院的列表。但是每次测试出来的值都为空?为什么呢?
(3)相关的配置文件dwr.xml
<allow>
<create creator="spring" javascript="DWR_getCollege">
<param name="beanName" value="collegeService" />
</create>
<create creator="spring" javascript="DWR_getZy">
<param name="beanName" value="zyService" />
</create>
<create creator="spring" javascript="DWR_getBj">
<param name="beanName" value="bjService" />
</create>
<create creator="new" javascript="service">
<param name="class" value="helloWorld.Service" />
</create>
<convert converter="bean" match="com.student.model.College">
<param name="include" value="Id,Cxy,Exy,Markxy" />
</convert>
<convert converter="bean" match="com.student.model.Zy">
<param name="include" value="Id,Czy,Ezy,Markzy" />
</convert>
<convert converter="bean" match="com.student.model.Bj">
<param name="include" value="Id,Cbj,Ebj,Markbj" />
</convert> </allow>
web.xml的配置:
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>
org.directwebremoting.servlet.DwrServlet
</servlet-class>
<!--
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/dwr.xml</param-value>
</init-param>
-->
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet> <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</context-param>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping> <listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
spring中的配置:
<!-- 学院开始 -->
<bean id="collegeDAO" class="com.student.dao.CollegeDAOImpl">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="sqlMapClient">
<ref local="sqlMapClient" />
</property>
</bean>
<bean id="collegeService" parent="baseTransactionProxy">
<property name="target">
<bean class="com.student.service.CollegeServiceImpl">
<property name="collegeDAO">
<ref bean="collegeDAO" />
</property>
</bean>
</property>
</bean>
<bean id="collegeAction" class="com.student.action.CollegeAction"
singleton="false">
<property name="collegeService">
<ref bean="collegeService" />
</property>
</bean>
<!-- 学院结束 -->
3、问题描述:第一步在jsp页面中就无法获得学院的列表,但是在CollegeServiceImpl.java这个中的方法是能够获得学院列表的?请高人指点这到底是什么原因,是配置出错了吗?还是其他原因?
应该是 data[i].Cxy吧