记Struts2到Springmvc迁移-初入IT,思想需要转变

本文详细阐述了在使用Struts2进行CRUD操作时遇到空指针错误的问题,并通过实例展示了如何在程序中设置默认值来解决这一问题。同时,文章还分享了在Oracle数据库中调用存储过程的另一种思路,即直接在Java程序中使用定时器调用存储过程,从而避免了使用job调度存储过程的复杂性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写Struts2的crud程序时,会定义一个程序入口来接收页面传来的数据,比如页码,qq号等。然后到Springmvc中时,是从jsp页面文件进入Controller的,然后我就不知道怎么传一个默认的值给pageNow变量,所以运行总是提示空指针错误(因为我有定义一个方法,pageNow就是里面需要调用的一个参数)。后来同事一句话就点醒 了我。我们可以从控制台打印出来pageNow是不是空,如果为空,我们就可以在程序中写入一段代码:

if(pageNow==null){

    pageNow=1;

}

就这样解决了我的问题。

记录下这一次的思想获得,让我摆脱了禁锢,希望这种思想上的解放机会越来越多。


2016/9/28: 不会在oracle数据库中使用job调用存储过程及将其值返回到java程序中进行计算,换一种思路就是直接在java程序中使用定时器调用存储过程也是一样的。换一种思路,就会柳暗花明又一村。

### Struts迁移Spring MVC环境配置教程 #### 1. 环境准备 为了顺利地将项目从Struts迁移Spring MVC,需要先准备好开发环境。确保安装并配置好Java Development Kit (JDK),Apache Maven用于构建管理和集成依赖项。 对于本案例中的版本组合——即Spring 2.5.6加上Hibernate 3.2.0的设置[^1],应当注意这些较旧版框架可能不再被官方支持;因此建议考虑升级到最新稳定版本以获得更好的性能和支持。 #### 2. 移除原有Struts相关文件 在开始转换之前,需清理掉所有与Struts有关的内容,比如`struts.xml`配置文件以及其他任何特定于Struts Action类等资源。如果原来使用的是Struts 2 Spring插件,则还需要解除其关联[^3]。 #### 3. 添加必要的依赖包 通过Maven更新项目的POM文件来引新的依赖库。除了核心Web容器外,还需加如下几个重要的组件: - **Spring Web MVC**: 提供了完整的MVC架构实现。 - **Jackson Databind** 或者其他JSON处理工具:方便前后端数据交换时序列化/反序列化操作。 ```xml <dependencies> <!-- Spring Web --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <!-- Jackson JSON Processor --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.8</version> </dependency> ... </dependencies> ``` #### 4. 创建控制器(Controller) 创建一个新的控制器类继承自`Controller`接口或标注为`@RestController`注解的方式定义RESTful API服务。这里给出一个基于原生Servlet API的例子作为起点[^2]: ```java import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; public class TestController implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView modelAndView = new ModelAndView("testSuccess"); modelAndView.addObject("message", "Migration to Spring MVC completed successfully."); return modelAndView; } } ``` 也可以采用更加简洁现代的做法,利用注释驱动的方法编写控制器: ```java @RestController @RequestMapping("/api/test") public class ModernTestController { @GetMapping(value="/helloWorld") public String helloWorld(){ return "Hello World!"; } } ``` #### 5. 配置视图解析器(View Resolver) 为了让应用程序知道如何查找和渲染模板页面,在Spring上下文中注册一个合适的ViewResolver bean是非常重要的。可以是内部资源视图解析器(InternalResourceViewResolver), Thymeleaf View Resolver或者其他第三方模版引擎提供的解决方案之一。 ```xml <!-- applicationContext.xml or similar configuration file --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/" /> <property name="suffix" value=".jsp" /> </bean> ``` 或者如果你正在使用Java Config方式代替XML声明的话, ```java @Configuration @EnableWebMvc @ComponentScan(basePackages={"your.package.name"}) public class AppConfig extends WebMvcConfigurerAdapter{ @Bean public InternalResourceViewResolver viewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/views/"); resolver.setSuffix(".jsp"); return resolver; } } ``` 完成上述步骤之后,应该已经具备了一个基本功能性的Spring MVC应用结构。当然这只是一个开端,实际工作中还涉及到更多细节调整和技术选型考量,例如安全性增强、国际化支持等方面的工作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值