当前位置: 首页 > news >正文

网站开发工程师的经验wordpress知更鸟more

网站开发工程师的经验,wordpress知更鸟more,校园网门户网站建设方案,网站制作容易吗怎么样数据格式化 学习目标: 理解在我们提交数据(比如表单时),SpringMVC怎样对提交的数据进行转换和处理的 Spring MVC 上下文中内建了很多转换器,可完成大多数 Java 类型的转换工作。 基本数据类型可以和字符串之间自动完成转换 应用实例-页面…

数据格式化

学习目标:

理解在我们提交数据(比如表单时),SpringMVC怎样对提交的数据进行转换和处理的

Spring MVC 上下文中内建了很多转换器,可完成大多数 Java 类型的转换工作。

基本数据类型可以和字符串之间自动完成转换

应用实例-页面演示方式

1.创建com/stein/springMVC/entity/Monster.java

public class Monster {private Integer id;private String name;private Integer age;private String email;//构造器,setter and getter,toString
}

2.创建web/data_valid.jsp

<head><title>springMVC[数据格式/验证]</title>
</head>
<body><h1>springMVC[数据格式/验证]</h1><hr><a href="<%=request.getContextPath()%>/add">添加妖怪</a><br><br>
</body>

3.创建com/stein/springMVC/valid/MonsterHandler.java

@Controller
@Scope(value="prototype")//表示每次访问MonsterHandler的时候,会生成一个新的对象
public class MonsterHandler {@RequestMapping("/add")public String addMonster(Map<String, Object> map) {/*** 解读* 1. 这里的表单,我们使用springMVC的标签来完成* 2. SpringMVC 表单标签在显示之前必须在 request 中有一个 bean, 该 bean 的属性和表单标签的字段要对应!*      request 中的 key 为: form 标签的 modelAttrite 属性值, 比如这里的monster* 3. SpringMVC 的 form:form 标签的 action 属性值中的 / 不代表 WEB 应用的根目录.* 4. <form:form action="monster" method="POST" modelAttribute="monster">*     这里需要给request增加一个 monster, 因为jsp 页面 的modelAttribute="monster"需要*     这是springMVC的内部检测机制 即使是一个空的也需要, 否则报错*/map.put("monster", new Monster());return "datavalid/monster_addUI";}

4.创建web/WEB-INF/page/datavalid/monster_addUI.jsp

    <%--prefix可以指定命名空间的前缀名称,这儿自定义了s,表明是springMVC的标签库--%><%--记住几个关键词就行了,uri的值,会有自动提示--%>
<%@ taglib prefix="s" uri="http://www.springframework.org/tags/form" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>添加妖怪</title>
</head>
<body>
<h2>添加妖怪</h2>
<%--
1. 这里的表单,我们使用springMVC的标签来完成,主要目的是方便提示信息回显
2. SpringMVC 表单标签在显示之前必须在 request 中有一个 bean, 该 bean的属性和表单标签的字段要对应!request 中的 key 为: form 标签的 modelAttrite 属性值, 比如这里的monsters
3. SpringMVC 的 s:form 标签的 action 属性值中的 / 不代表 WEB 应用的根目录.
4. <s:form action=" ??" method="POST" modelAttribute="monster">// 这 里 需 要 给 request 增 加 一 个 monster , 因 为 jsp页面的modelAttribute="monster"是必要的//这 是springMVC 的内部的检测机制 即使是一个空的也需要,否则报错
--%>
<s:form action=""  method="post" modelAttribute="monster">妖怪姓名:<s:input path="name" /><br><br>妖怪年龄:<s:input path="age" /><br><br>电子邮件:<s:input path="email"/><br><br>
<%--    注意这儿的提交标签,还是用的原来的标签--%><input type="submit" value="添加妖怪">
</s:form>

5. 创建web/WEB-INF/page/success.jsp

<h1>恭喜, 操作成功~</h1>

6. 添加MonsterHandler的save方法

    @RequestMapping("/save")public String addMonster(Monster monster) {//这儿的monster,springMVC会进行自动装配System.out.println(monster);return "success";}

7. 完善monster_addUI.jsp的action

<s:form action="save"  method="post" modelAttribute="monster">

8. 测试 , 浏览器:http://localhost:8080/springmvc/data_valid.jsp

1)如果age 输入的是 数字,则通过, 说明SpringMVC可以将提交的字符串 数字,比如"28", 转成Integer/int

2) 如果不是数字,则给出400的页面

应用实例-Postman完成测试

小结

该实例体现了springMVC的自动转换功能,将String类型自动转换成了Integer/int类型。

特殊数据类型和字符串间的转换

应用实例-页面演示方式

1. 特殊数据类型和字符串之间的转换使用注解(比如日期,规定格式的小数比如货币形式 等)

2. 对于日期和货币可以使用 @DateTimeFormat 和 @NumberFormat 注解. 把这两个注 解标记在字段上即可

3.Monster.java增加生日和薪水字段

    @DateTimeFormat(pattern="yyyy-MM-dd")private Date birthday;@NumberFormat(pattern = "###,###,###.##")private float salary;

4.monster_addUI.jsp增加对应显示的字段

    妖怪生日:<s:input path="birthday"/>要求以"9999-11-11"的形式<br><br>妖怪薪水:<s:input path="salary"/>要求以"123,890.12"的形式<br><br>

5.测试

后台输出结果:

Monster{id=null, name='stein', age=12, email='steine985@gmail.com', birthday=Thu Nov 23 00:00:00 CST 1989, salary=456799.44}

可以看到:

1. 生日显示的方式是国际化的,需要接下来进行调整。
2. 薪水字段我输入的小数部分是45,然而后台输出的是44。所以涉及金钱这些对精度要求比较高的字段,还是要用double才行。

对DeepSeek的提问:

@DateTimeFormat(pattern="yyyy-MM-dd")private Date birthday;@NumberFormat(pattern = "###,###,###.##")private float salary;
这儿的pattern是一个字段,还是正则表达式?里面的yyyy这些,可以换成xxxx吗?#可以换$吗?

回答摘要:

1. pattern 的本质

  • @DateTimeFormat(pattern = "yyyy-MM-dd")
    这里的模式字符串遵循 java.text.SimpleDateFormat 的规则,用于定义日期格式。yyyyMM 等是预定义的格式符号(占位符),不可随意替换。

  • @NumberFormat(pattern = "###,###,###.##")
    这里的模式字符串遵循 java.text.DecimalFormat 的规则,用于定义数字格式。#, 等是预定义的格式符号。

2. 能否替换格式符号?

✅ 日期格式 (@DateTimeFormat)

  • yyyy 能否换成 xxxx
    不能yyyy 表示四位年份(如 2023),而 xxxx 不是合法的格式符号。日期格式符必须使用 SimpleDateFormat 支持的符号,符号详见 SimpleDateFormat 文档。

✅ 数字格式 (@NumberFormat)

  • # 能否换成 $
    不能# 表示数字占位符(可选位,不足时不补零),而 $ 是字面量字符(直接显示为 $)。例如:

    • 合法模式:"$###,###.##" → 显示如 $1,234.56

    • 非法替换:"$$$,$$$,$$$.$$" → 会报错($ 不能替代 # 的功能)。

经测试,都报错了,看来DP说得对。

        日期报错x非法,Illegal pattern character 'x';

        数字转换失败,NumberFormatException

应用实例-Postman完成测试

日期要在取值范围内,数字按规范,否则无法转换,页面报错400

http://www.dtcms.com/a/501112.html

相关文章:

  • 雅布设计中国分公司在哪里新站优化
  • 异数OS-织梦师-操作系统与数据库的合体(十一)-使用异数OS打造高性能低成本元宇宙OLTP数据库引擎
  • 免费设立网站新建网站如何调试
  • 拨付网站建设费用的报告百度网站评分
  • 麻涌镇网站仿做域名解析映射到网站空间怎么做
  • 赚钱的网站开发项目网站关键词排名
  • SAP MM寄售发票校验接口分享
  • 新网站制作公司网站嵌入js
  • 做美妆网站的关键词用户登录界面设计
  • PrivaZer Pro v4.0.111_Win中文_电脑清理工具 _安装教程
  • 低电容ESD保护二极管设计指南:选型要点与ASIM解决方案
  • 做网站便宜服务器网站后台登陆密码黄框显示
  • 网站前台订单功能模块凡客网站做SEO能被收录吗
  • 司法网站建设与维护 教材域名续费一般多少一年
  • 潜山做网站wordpress 釆集插件
  • StackedGAN详解与实现
  • 怎么开网站平台WordPress图片上传最大尺寸
  • 大连网站制作 姚喜运襄阳旅游景点网站建设
  • 深圳建设工程协会网站seo有哪些优化工具
  • 化妆品购物网站排名负责做网站的叫什么公司
  • 大连html5网站建设价格重庆app定制软件开发
  • wordpress谷歌字体加载慢漳州网站优化
  • 网站会员后台网站设计什么价位
  • 网站开发工程师有证书考试吗深圳专业网站建设公司
  • 【微知】一些常用的日常技术英语词语或者词组(不断更新)
  • 绿建设计院网站php 上传网站
  • 个人如何建网站wordpress主题6
  • 网盟官方网站外贸soho建站公司
  • 网站后台管理图片水印怎么做wordpress固定连接重
  • php网站开发实用技术课后习题网页版微信可以转账吗