spring的mvc对于页面日期格式进行传值到后台

本文解决了一个在Spring MVC中将日期类型参数从页面传入后台时出现的403错误问题。通过在VO类中为日期属性添加特定注释,可以成功注入并指定日期格式。

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

对于spring的mvc 日期格式从页面传入后台是个问题。string类型和整形都能友好传入。但是对于日期类型date却不能传入。回报403参数不对的错误。

看例子:

@RequestMapping("caogaoList")

public String caogaoList(LectureRecords info,Model m){

m.addAttribute("data", plList);//按照分页进行查询

return "/lecturerecords/caogaolecturerecordslist";

}

 

info对象是前端页面向里面注入属性的对象,如果info里面有date类型,那么注入的时候会失败,报403的错误。这个问题是解决的办法是在LectureRecords 的这个VO里面日期的属性需要重新的注释。看代码:

/**

*听课时间

**/

@Column(name="lecture_time")

@DateTimeFormat(pattern = "yyyy-MM-dd")

 

private Date lectureTime;

 

这样就能注入了,并且还能指定日期的格式。很简单,虽然是个小的知识点,但还是把它记下来。

### Java Web 应用中 URL 参数递与 JavaBean 接收 在构建基于Java EE平台的应用程序时,通常会利用现有的Web服务器来处理TCP连接以及HTTP协议解析等工作[^1]。对于通过URL递参数并在后台使用JavaBean接收的需求,主要涉及两个方面的工作:一是前端如何构造带有查询字符串的URL;二是后端怎样配置Servlet或者Spring MVC控制器以映射请求并将参数绑定至JavaBean。 #### 前端构造带参数的URL 当希望向服务端发送数据而不采用表单提交的方式时,可以通过修改链接中的查询部分来附加键对形式的数据。例如: ``` http://example.com/app?paramName=paramValue ``` 这里`paramName`即为参数名而`paramValue`则是对应的。多个参数之间需用`&`分隔开。 #### 后台配置 Servlet 或者 Spring 控制器 ##### 使用原生Servlet API 如果项目直接依赖于Servlet技术,则可以在doGet/doPost方法内部获取HttpServletRequest对象,并从中读取GET/POST方式来的参数。下面是一个简单的例子展示如何创建一个能够接受名为`username`参数的Servlet类: ```java protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); } ``` 此时若想进一步简化开发流程,可考虑引入框架支持自动完成从请求到实体之间的转换过程。 ##### 利用Spring MVC 实现更优雅的解决方案 相比于统的Servlet编程模型,借助Spring Framework下的MVC模块可以让开发者更加专注于业务逻辑本身而非繁琐的基础架构细节。具体来说就是定义处理器函数签名时声明形参列表里包含目标类型的实例作为入参之一即可触发内置机制尝试填充该对象属性的过程——这便是所谓的“命令模式”。 假设存在如下所示的一个POJO(Plain Old Java Object),用于表示用户登录所需的信息结构体: ```java public class UserLoginForm { private String email; public String getEmail() {return this.email;} public void setEmail(String email) {this.email = email;} // ... other getters and setters ... } ``` 那么相应的控制层组件应当如此编码: ```java @Controller @RequestMapping("/login") public class LoginController { @RequestMapping(method = RequestMethod.GET) public ModelAndView showForm(UserLoginForm form){ return new ModelAndView("login", "form", form); } @RequestMapping(method = RequestMethod.POST) public String processSubmit(@ModelAttribute("user") UserLoginForm user, BindingResult result) { if (result.hasErrors()) { return "error"; } // handle valid submission... return "success"; } } ``` 上述代码片段展示了如何让Spring容器负责将来自客户端浏览器地址栏内的输入项赋给`UserLoginForm`实例各字段的操作。得注意的是,除了基本类型外还允许指定复杂对象作为方法参数的一部分参与进来,只要确保它们遵循一定的命名约定就能顺利达成预期效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值