struts2交给spring管理之后表单提交的字段无法注入

copaer copaer 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
如题。
这是提交页面:

<div align="center" class="register">
<form action="/course/studentRegisterAction" method="post">
<table class="register_table">
<caption>学生注册信息表单</caption>
<tbody>
<tr>
<td>学生学号:</td>
<td><input type="text" name="sid" required="required"/></td>
</tr>
<tr>
<td><button type="submit">提交</button></td>
<td><button type="reset">重置</button></td>
</tr>
</tbody>
</table>
</form>
</div>


下面是struts.xml

<constant name="struts.i18n.encoding" value="UTF-8"/>

<!-- 将struts交给spring进行管理 -->
<constant name="struts.objectFactory" value="spring"/>

<constant name="struts.devMode" value="true"/>
<constant name="struts.serve.static.browserCache" value="false"/>
<constant name="truts.action.extension" value="action,do"/>
<constant name="struts.configuration.xml.reload" value="true"/>

<!-- 设置目标缓存文件位置
<constant name="struts.multipart.saveDir" value="D:\\temp"/>
-->

<package name="org.course.action" extends="struts-default">
<action name="studentRegisterAction" class="studentRegisterHandler">
<result>/index.jsp</result>
</action>
</package>

接下来是我的Action

@Transactional
@Controller
public class StudentRegisterHandler extends ActionSupport {

private static final long serialVersionUID = -520L;
private String sid;
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
@Override
public String execute() throws Exception {
System.out.println(getSid());
return SUCCESS;
}
}

运行起来没有报错,就是Action中的sid值为null,struts2没有对sid注入值,如果我struts2不交给spring管理,也就是去掉Action头上的@Controller,以及去掉struts.xml中的<constant name="struts.objectFactory" value="spring"/> 那么就有值。真的不明白是怎么回事。按道理应该整合成功才对啊???
求大神帮忙解决,小弟初学整合ssh,关键代码就是这些了。
感激不尽!感激不尽!
...全文

相关推荐

struts2 (对象.属性)注入

在struts2中已经不需要struts1中的formbean了。在struts1中每次提交表单的时候,表单中的属性值都先赋予formbean,然后操作formbean。但是现在struts2中用对象.属性名来给对象赋值,然后操作这个对象。而这些对象都是vo的实现,如果使用hibernate,可以直接把struts2的vo和hibernate的po整合到一块,直接使用一个即可。

木马船长

NetBeans集成Struts2.0与Spring2插件及JAR资源包

NetBeans提供了丰富的API和开发工具,例如NbModuleSuite、NbModuleProject等。这些工具可以帮助开发者快速创建模块项目,处理模块间的依赖关系。

宋老师的博客

基于JSP+Struts2+Spring+MySQL的宠物网站开发实战与架构解析

Java Web开发是构建企业级应用的核心技术体系,其核心在于理解MVC架构模式如何将用户请求、业务逻辑与数据持久化分离。通过依赖注入、面向切面编程等原理,Spring框架实现了组件解耦与事务管理,而Struts2则通过拦截器机制集中处理请求控制。这些技术的组合为构建可维护、可扩展的Web应用提供了坚实基础,尤其在内容管理、电商平台及社区论坛等需要动态数据交互的场景中广泛应用。本文以宠物社区网站为例,深入探讨了如何整合JSP、Struts2、Spring与MySQL这一经典技术栈,并重点解析了用户认证安全与

weixin_34392435

Java Web宠物网站实战:Spring+Struts2+JSP+MySQL整合开发全解析

在Java Web开发领域,MVC架构模式是构建企业级应用的核心思想,它将应用分为模型、视图和控制器三层,以实现关注点分离和代码复用。其工作原理是通过前端控制器拦截用户请求,分发给相应的处理器执行业务逻辑,并最终渲染视图返回响应。这种架构的技术价值在于提升了代码的可维护性、可测试性和团队协作效率,广泛应用于电商、内容管理、社交平台等各类Web系统。本文以宠物网站项目为具体场景,深入剖析如何将经典的Spring框架与Struts2进行整合,解决依赖注入与请求控制器的协同问题,并详细演示了使用JSP结合JSTL

weixin_34175509

基于注解的Spring+Struts2+Mybatis+Maven综合项目实战

Aspect注解用来定义一个切面,即在面向切面编程(AOP)中定义通知和切点的类。一个切面可以包含多个通知和切点。切面的定义示例:@Aspect@Component// ...在这个例子中,类被标记为一个组件,同时定义为一个切面。@Pointcut注解用于定义切点,即在哪些方法执行时触发通知的执行。它通常与切入点表达式一起使用,来指定一个连接点的模式,连接点是程序执行过程中能够插入切面的点。例如,定义一个切点,匹配所有save方法:@Aspect这个。

青妍
评论 26
收藏 已收藏
分享
返回顶部
copaer
Web 开发 81,108 成员 341,721 内容