有关一个SSH整合的问题

candebbs 2008-11-14 10:57:14
做一个在线考试系统,采用Struts+Hibernate+Spring,运行时log4j出现这样的问题:
DelegatingActionProxy with mapping path '/adminLogin' and module prefix '' delegating to Spring bean with name [/adminLogin]
No action instance for path /adminLogin could be created
java.lang.NullPointerException
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1270)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)
at org.apache.struts.util.RequestUtils.applicationClass(RequestUtils.java:117)
at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:143)
at org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:280)
at org.springframework.web.struts.DelegatingRequestProcessor.processActionCreate(DelegatingRequestProcessor.java:150)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:218)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at com.exam.struts.action.base.MyActionServlet.process(MyActionServlet.java:15)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
搞了几天,自己估计是配置文件的问题,但不知问题出在哪?请教高手,不胜感激!
附上配置文件:

...全文
221 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
candebbs 2008-11-18
  • 打赏
  • 举报
回复
问题解决,我来说下解决过程:当出现这样的错误时,我就以为是spring配置的错误,于是在找,自己又把spring文档又看一遍,后来在一高手指点下:
我竟然在
<!-- 处理管理员登录 -->
<bean name="/amdinLogin" class="com.exam.struts.action.AdminLoginAction" scope="prototype" parent="actionTemplate"> </bean>
这里 adminLogin写成了amdinLogin,真的很粗心啊,
真的很晕...这样都没有发现!真想撞墙死.....
想想:一开始我想法都错了,因为开始时出现一个配置文件的错误,我即时修改,然后又想当然认为是配置文件的错误,狂看spring文档致浪费不少时间!

谢谢各位帮助!
candebbs 2008-11-17
  • 打赏
  • 举报
回复
楼上的,struts加上type="org.springframework.web.struts.DelegatingActionProxy" 出现以下的错误:

DelegatingActionProxy with mapping path '/adminLogin' and module prefix '' delegating to Spring bean with name [/adminLogin]
No bean named '/adminLogin' found in org.springframework.beans.factory.support.DefaultListableBeanFactory@1cc5d23: defining beans [actionTemplate,/amdinLogin,/processAddStudent,/listStudnet,/delStudent,/processAddTest,/addQuestion,/listQuestion,/delQuestion,/processAddQuestion,/processLogin,/prepare,/reply,/finish,org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator,authorityInterceptor,org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator#1,examInterceptor,dataSource,sessionFactory,transactionManager,transactionInterceptor,examService,org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator#2,daoTemplate,examUserDao,examTypeDao,studentDao,questionDao]; root of factory hierarchy
caironghuicxz 2008-11-17
  • 打赏
  • 举报
回复
6楼跟7楼的已经说的很清楚了啊
  • 打赏
  • 举报
回复
不好意思,发错帖子了
  • 打赏
  • 举报
回复
呵呵,QQ上已经说了
xiaoshen1127 2008-11-16
  • 打赏
  • 举报
回复
你在spring配置文件里写了
但在struts里没告诉他ACTION 的 TYPE
一般来说是
type="org.springframework.web.struts.DelegatingActionProxy"
这样SPRING容器启动时才会帮你创建这个ACTION
wrong1111 2008-11-15
  • 打赏
  • 举报
回复
<action
scope="request"
path="/prepare">
<forward name="success" path="/WEB-INF/jsp/prepare.jsp"> </forward>
</action>

你ACTION里所有的spring 委托代理接口呢>
candebbs 2008-11-15
  • 打赏
  • 举报
回复
我把action放在spring中管理了,在daoContext.xml文件中有以下定义了:
<!-- 处理管理员登录 -->
<bean name="/amdinLogin" class="com.exam.struts.action.AdminLoginAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 处理添加学生 -->
<bean name="/processAddStudent" class="com.exam.struts.action.AddStudentAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 处理列出学生 -->
<bean name="/listStudnet" class="com.exam.struts.action.ListStudentAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 处理删除学生 -->
<bean name="/delStudent" class="com.exam.struts.action.DelStudentAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 处理添加考试类型 -->
<bean name="/processAddTest" class="com.exam.struts.action.AddTestAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 进入添加试题的表单页 -->
<bean name="/addQuestion" class="com.exam.struts.action.BeforeAddQuestionAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 处理列出问题 -->
<bean name="/listQuestion" class="com.exam.struts.action.ListQuestionAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 处理删除试题 -->
<bean name="/delQuestion" class="com.exam.struts.action.DelQuestionAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 处理添加试题 -->
<bean name="/processAddQuestion" class="com.exam.struts.action.AddQuestionAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 处理学生登录 -->
<bean name="/processLogin" class="com.exam.struts.action.StudentLoginAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 学生准备考试 -->
<bean name="/prepare" class="com.exam.struts.action.BeginAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 学生答题 -->
<bean name="/reply" class="com.exam.struts.action.ReplyAction" scope="prototype" parent="actionTemplate"> </bean>
<!-- 考试结束 -->
<bean name="/finish" class="com.exam.struts.action.FinishAction" scope="prototype" parent="actionTemplate"> </bean>
难道这样写是不行的?
  • 打赏
  • 举报
回复
DelegatingActionProxy with mapping path '/adminLogin' and module prefix '' delegating to Spring bean with name [/adminLogin]
No action instance for path /adminLogin could be created
java.lang.NullPointerException
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)

兄弟,上面错误提示中说的很清楚了

<action
path="/adminLogin"
name="loginAdminForm"
validate="false"
scope="request">
<forward name="success" path="/WEB-INF/jsp/addStudent.jsp"> </forward>
<forward name="failure" path="/WEB-INF/jsp/login.jsp"> </forward>
</action>

你的class属性没指定,应该指明他的具体的action类的路径

这样就可以了
海会圣贤 2008-11-15
  • 打赏
  • 举报
回复
<!-- 处理后台管理员登录 -->
<action
path="/adminLogin"

*****************************
<!--加上:-->
class="org.spring....."
*****************************

name="loginAdminForm"
validate="false"
scope="request">
<forward name="success" path="/WEB-INF/jsp/addStudent.jsp"> </forward>
<forward name="failure" path="/WEB-INF/jsp/login.jsp"> </forward>
</action>
海会圣贤 2008-11-15
  • 打赏
  • 举报
回复
错误已经说得很明白了:

'/adminLogin' and module prefix '' delegating to Spring bean with name [/adminLogin]


No action instance for path /adminLogin could be created

struts 的/adminLogin 和 Spring 的/adminLogin,
没有action /adminLogin被创建 ,你看看struts的配置:
<!-- 处理后台管理员登录 -->
<action
path="/adminLogin"
name="loginAdminForm"
validate="false"
scope="request">
<forward name="success" path="/WEB-INF/jsp/addStudent.jsp"> </forward>
<forward name="failure" path="/WEB-INF/jsp/login.jsp"> </forward>
</action>

里面的class属性呢?

这当然不行了,你class都没有,怎么找得到啊
candebbs 2008-11-14
  • 打赏
  • 举报
回复
appContext.xml文件
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<!-- 定义数据源Bean,使用C3P0数据源实现 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/onlinexam"></property>
<property name="user" value="root"></property>
<property name="password" value="329435123"></property>
<property name="maxPoolSize" value="40"></property>
<property name="minPoolSize" value="1"></property>
<property name="initialPoolSize" value="1"></property>
<property name="maxIdleTime" value="20"></property>
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.jdbc.batch_size">20</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/exam/model/ExamUser.hbm.xml</value>
<value>com/exam/model/ExamType.hbm.xml</value>
<value>com/exam/model/Question.hbm.xml</value>
<value>com/exam/model/Student.hbm.xml</value>
</list>
</property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事务拦截器bean需要依赖注入一个事务管理器 -->
<property name="transactionManager" ref="transactionManager"></property>
<property name="transactionAttributes">
<!-- 下面定义事务传播属性 -->
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>

<!-- 定义业务逻辑处理组件 -->
<bean id="examService" class="com.exam.service.impl.ExamServiceImpl">
<property name="examUserDao" ref="examUserDao"></property>
<property name="examTypeDao" ref="examTypeDao"></property>
<property name="studentDao" ref="studentDao"></property>
<property name="questionDao" ref="questionDao"></property>
</bean>

<!-- 定义BeanNameAutoProxyCreator -->
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<!-- 指定对满足哪些Bean name的Bean自动生成业务代理 -->
<property name="beanNames">
<!-- 下面是所有需要自动创建事务代理的Bean-->
<list>
<value>examService</value>
</list>
<!-- 此处可增加其他需要自动创建事务代理的Bean-->
</property>
<!-- 下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
<!-- 此处可增加其他新的Interceptor -->
</list>
</property>
</bean>
</beans>
candebbs 2008-11-14
  • 打赏
  • 举报
回复
daoContext.xml文件:
<bean name="daoTemplate" abstract="true">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 配置考试系统管理员DAO,通过指定parent属性来继承daoTemplate -->
<bean name="examUserDao" class="com.exam.impl.ExamUserDaoHibernate" parent="daoTemplate"></bean>
<bean name="examTypeDao" class="com.exam.impl.ExamTypeDaoHibernate" parent="daoTemplate"></bean>
<bean name="studentDao" class="com.exam.impl.StudentDaoHibernate" parent="daoTemplate"></bean>
<bean name="questionDao" class="com.exam.impl.QuestionDaoHibernate" parent="daoTemplate"></bean>



actionContext.xml文件
<bean name="actionTemplate" abstract="true">
<property name="examService" ref="examService"></property>
</bean>

<!-- 处理管理员登录 -->
<bean name="/amdinLogin" class="com.exam.struts.action.AdminLoginAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 处理添加学生 -->
<bean name="/processAddStudent" class="com.exam.struts.action.AddStudentAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 处理列出学生 -->
<bean name="/listStudnet" class="com.exam.struts.action.ListStudentAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 处理删除学生 -->
<bean name="/delStudent" class="com.exam.struts.action.DelStudentAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 处理添加考试类型 -->
<bean name="/processAddTest" class="com.exam.struts.action.AddTestAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 进入添加试题的表单页 -->
<bean name="/addQuestion" class="com.exam.struts.action.BeforeAddQuestionAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 处理列出问题 -->
<bean name="/listQuestion" class="com.exam.struts.action.ListQuestionAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 处理删除试题 -->
<bean name="/delQuestion" class="com.exam.struts.action.DelQuestionAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 处理添加试题 -->
<bean name="/processAddQuestion" class="com.exam.struts.action.AddQuestionAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 处理学生登录 -->
<bean name="/processLogin" class="com.exam.struts.action.StudentLoginAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 学生准备考试 -->
<bean name="/prepare" class="com.exam.struts.action.BeginAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 学生答题 -->
<bean name="/reply" class="com.exam.struts.action.ReplyAction" scope="prototype" parent="actionTemplate"></bean>
<!-- 考试结束 -->
<bean name="/finish" class="com.exam.struts.action.FinishAction" scope="prototype" parent="actionTemplate"></bean>

<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>/processAddStudent</value>
<value>/listStudent</value>
<value>/delStudent</value>
<value>/processAddTestt</value>
<value>/listQuestion</value>
<value>/delQuestion</value>
<value>/addQuestion</value>
<value>/processAddQuestion</value><!-- 不同原 -->
</list>
</property>
<property name="interceptorNames">
<list>
<value>authorityInterceptor</value>
</list>
</property>
</bean>
<bean id="authorityInterceptor" class="com.exam.authority.AuthorityInterceptor"/>
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>/reply</value>
<value>/finish</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>examInterceptor</value>
</list>
</property>
</bean>
<bean id="examInterceptor" class="com.exam.authority.ExamInterceptor"></bean>
candebbs 2008-11-14
  • 打赏
  • 举报
回复
struts-config.xml:
<struts-config>
<data-sources />
<form-beans >
<form-bean name="loginAdminForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="password" type="java.lang.String" />
<form-property name="name" type="java.lang.String" />
</form-bean>

<form-bean name="loginexamForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="stuname" type="java.lang.String"/>
<form-property name="stunumber" type="java.lang.String"/>
</form-bean>

<form-bean name="addStudentForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="id" type="java.lang.String"/>
<form-property name="realname" type="java.lang.String"/>
<form-property name="stuName" type="java.lang.String"/>
<form-property name="className" type="java.lang.String"/>
<form-property name="address" type="java.lang.String"/>
<form-property name="phone" type="java.lang.String"/>
<form-property name="email" type="java.lang.String"/>
<form-property name="humanId" type="java.lang.String"/>
</form-bean>

<form-bean name="addQuestionForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="title" type="java.lang.String"/>
<form-property name="examType" type="java.lang.String"/>
<form-property name="score" type="java.lang.String"/>
<form-property name="level" type="java.lang.String"/>
<form-property name="note" type="java.lang.String"/>
<form-property name="choices" type="java.lang.String"/>
<form-property name="standardAnswer" type="java.lang.String"/>
</form-bean>

<form-bean name="addTestForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="testName" type="java.lang.String"/>
<form-property name="testTime" type="java.lang.String"/>
</form-bean>

<form-bean name="studentLoginForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="stuNumber" type="java.lang.String" />
<form-property name="stuName" type="java.lang.String" />
</form-bean>

<form-bean name="replyFormForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="idr" type="java.lang.String" />
<form-property name="options" type="java.lang.String" />
</form-bean>
</form-beans>

<global-exceptions>
<exception key="examException"
type="com.exam.exception.ExamException"
scope="request"
path="/WEB-INF/jsp/error.jsp">
</exception>
<exception key="otherException"
type="java.lang.Exception"
scope="request"
path="/WEB-INF/jsp/error.jsp">
</exception>
</global-exceptions>

<global-forwards>
<forward name="admin" path="/WEB-INF/jsp/login.jsp"></forward>
<forward name="loginExam" path="/WEB-INF/jsp/loginExam.jsp"></forward>
</global-forwards>

<action-mappings>
<!-- 进入后台管理的登录页面 -->
<action path="/admin" forward="/WEB-INF/jsp/login.jsp"></action>
<!-- 进入添加学生的表单页 -->
<action path="/addStudent" forward="/WEB-INF/jsp/addStudent.jsp"></action>
<!-- 进入添加考试类型的表单页 -->
<action path="/addTest" forward="/WEB-INF/jsp/addTest.jsp"></action>
<!-- 进入学生登录的表单页 -->
<action path="/login" forward="/WEB-INF/jsp/loginExam.jsp"></action>
<action path="/loginExam" forward="/WEB-INF/jsp/loginExam.jsp"></action>

<!-- 处理后台管理员登录 -->
<action
path="/adminLogin"
name="loginAdminForm"
validate="false"
scope="request">
<forward name="success" path="/WEB-INF/jsp/addStudent.jsp"></forward>
<forward name="failure" path="/WEB-INF/jsp/login.jsp"></forward>
</action>

<!-- 处理添加学生 -->
<action
validate="false"
name="addStudentForm"
path="/processAddStudent"
scope="request">
<forward name="success" path="/listStudent.do"></forward>
</action>

<!-- 处理列出学生 -->
<action
validate="false"
path="/listStudent"
scope="request">
<forward name="success" path="/WEB-INF/jsp/listStudent.jsp"></forward>
</action>

<!-- 处理删除学生 -->
<action
path="/delStudent"
scope="request"
validate="false">
<forward name="success" path="/listStudent.do"></forward>
</action>

<!-- 处理添加考试类型 -->
<action
validate="false"
name="addTestForm"
path="/processAddTest"
scope="request">
<forward name="success" path="/addQuestion.do"></forward>
</action>

<!-- 进入添加试题的表单页 -->
<action
path="/addQuestion"
scope="request"
validate="false">
<forward name="success" path="/WEB-INF/jsp/addQuestion.jsp"></forward>
</action>

<!-- 列出所有试题 -->
<action
validate="false"
scope="request"
path="/listQuestion">
<forward name="success" path="/WEB-INF/jsp/listQuestion.jsp"></forward>
</action>

<!-- 处理删除试题 -->
<action
validate="false"
scope="request"
path="/delQuestion">
<forward name="success" path="/listQuestion.do"></forward>
</action>

<!-- 处理添加试题 -->
<action
validate="false"
scope="request"
name="addQuestionForm"
path="/processAddQuestion">
<forward name="success" path="/listQuestion.do"></forward>
</action>

<!-- 处理考生登录 -->
<action
validate="false"
name="studentLoginForm"
path="/processLogin"
scope="request">
<forward name="success" path="/prepare.do"></forward>
<forward name="failure" path="/WEB-INF/jsp/loginExam.jsp"></forward>
</action>

<!-- 处理考生预备 -->
<action
scope="request"
path="/prepare">
<forward name="success" path="/WEB-INF/jsp/prepare.jsp"></forward>
</action>

<!-- 处理考生开始考试 -->
<action
scope="request"
path="/begin">
<forward name="success" path="/WEB-INF/jsp/examMain.jsp"></forward>
</action>

<!-- 处理考生答题 -->
<action
validate="false"
scope="request"
name="replyForm"
path="/reply">
<forward name="success" path="/WEB-INF/jsp/examMain.jsp"></forward>
<forward name="finish" path="/finish.do"></forward>
</action>

<!-- 统计考试结果 -->
<action
scope="request"
path="/finish">
<forward name="success" path="/WEB-INF/jsp/show.jsp"></forward>
</action>
</action-mappings>

<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>

<message-resources parameter="message"/>

<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/classes/actionContext.xml,/WEB-INF/classes/appContext.xml,/WEB-INF/classes/daoContext.xml" />
<!--
<set-property property="contextConfigLocation"
value="/WEB-INF/classes/applicationContext.xml" />-->
</plug-in>

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
<set-property property="stopOnFirstError" value="true" />
</plug-in>
</struts-config>

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧