struts2值栈与类型转换
来源:互联网 发布:数据冰雹重点场所监控 编辑:程序博客网 时间:2024/06/16 16:05
OGNL的表达方式有四种:
1.使用圆点符号
2.调用对象的方法
3.结合Struts2标签使用
4.表达式求值
下面主要讲解常用的使用圆点符号和结合Struts2标签:
1.使用圆点符号
代码实例:
1)jsp页面代码
<body> <form action="login" method="post"> 姓名: <input name="u.name"><br> 密码: <input name="u.pwd"><br> <input type="submit" value="提交"> </form> </body>2)建一个实体类User
package com.qhit.bean;import java.util.Date;public class User {private String name;private String pwd;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}}3)创建action类LoginAction
package com.qhit.action;import com.opensymphony.xwork2.ActionContext;import com.qhit.bean.User;public class LoginAction {private User u;public String login(){String name = u.getName();String pwd = u.getPwd();if("zhangsan".equals(name) && "123".equals(pwd)){ActionContext.getContext().getSession().put("user", u);return "success";}else{return "error";}}public User getU() {return u;}public void setU(User u) {this.u = u;}}4)在Struts.xml中配置action类
<action name="login" class="com.qhit.action.LoginAction" method="login"><result name="success">page/success.jsp</result><result name="error">page/error.jsp</result></action>5)在page文件下创建success.jsp页面使用圆点符号的OGNL表达式
<body> This is success page. <br> 姓名:${u.name } 密码:${u.pwd }<!--此处使用了ognl的表达式的圆点符号方式 --> </body>6) 部署运行即可得到登录名和密码
2.使用Struts2标签
<body> <form action="login" method="post"> 姓名: <input name="u.name"><br> 密码: <input name="u.pwd"><br> 出生日期:<input name="u.birth"><br> <input type="submit" value="提交"> </form> </body>
2)实体类User
package com.qhit.bean;import java.util.Date;public class User {private String name;private String pwd;private Date birth;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public Date getBirth() {return birth;}public void setBirth(Date birth) {this.birth = birth;}} 3)action类
package com.qhit.action;import com.opensymphony.xwork2.ActionContext;import com.qhit.bean.User;public class LoginAction {private User u;public String login(){String name = u.getName();String pwd = u.getPwd();if("zhangsan".equals(name) && "123".equals(pwd)){ActionContext.getContext().getSession().put("user", u);}else if("birth".equals(name) && "123".equals(pwd)){return "info";}else{
return "error";}}public User getU() {return u;}public void setU(User u) {this.u = u;}}
4)Struts.xml配置
<action name="login" class="com.qhit.action.LoginAction" method="login"><result name="success">page/success.jsp</result><result name="error">page/error.jsp</result><result name="info">page/info.jsp</result></action>
5)page文件下的info.jsp页面
<%@ taglib prefix="s" uri="/struts-tags" %>Struts2标签
<body> 姓名:<s:property value="u.name"/><br> 密码: <s:property value="u.pwd"/><br> 出生日期: <s:property value="u.birth"/> </body>6) 部署运行即可得到姓名,密码,出生日期。
类型转换
Struts2内置的类型转换:
String和int、Integer
String和double、Double
String和Map、List
String和Date
String和boolean
String和char
Struts2自定义类型转换
在Struts2中提供了StrutsTypeConverter类来简化自定义类型转换的设计,这个类有两个抽象方法需要实现:
(1) public Object convertFromString(Map context, String[] values, Class toClass) ;
用于String类型数据转成自定义类型的处理方法参数:
context --- 与Action有关的上下文信息
values --- 从请求中获取的参数值
toClass --- 要转换的目标类型
public String convertToString(Map context, Object obj) ;
用于自定义类型转换成String
参数:
context --- 与Action有关的上下文信息
obj --- 自定义类型对象
这里讲一下string和date
1.组件级别(仅供练习使用)
1)新建转换器类package com.qhit.converter;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Map;import org.apache.struts2.util.StrutsTypeConverter;public class DateTypeConterver extends StrutsTypeConverter {/* * 把指定日期格式的字符串转出日期类型 将提交的String类型的日期转换成date类型的日期 输入 * arg0 --与Action有关的上下文信息 * arg1--从请求中获取的参数值 * arg2--要转换的目标类型 * */@Overridepublic Object convertFromString(Map arg0, String[] arg1, Class arg2) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");try {Date date = sdf.parse(arg1[0]);return date;} catch (ParseException e) {System.out.println("日期转换错误");e.printStackTrace();return null;}}/* * 把日期类型的值转出指定日期格式的字符串格式 将date类型的日期转换成string类型的日期 输出 * arg0 --与Action有关的上下文信息 * arg1--自定义类型对象 * * */@Overridepublic String convertToString(Map arg0, Object arg1) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String date = sdf.format(arg1);return date;}}
2)新建properties文件
birth=com.qhit.converter.DateTypeConterverbirth为User的属性,等号后面的是转换器的路径
3,再加上上面Struts2标签代码部署运行即可,此时只能输入"yyyy-MM-dd"格式的日期
2.全局级别(实际开发可使用)
只需改一下properties配置文件即可
1)位置,与struts.xml同一级别在src下
2)文件名称不能变,是固定的
文件里的代码
java.util.Date=com.qhit.converter.DateTypeConterver
3)部署运行即可
以上就是我所学的Struts2值栈和类型转换。
- [转载]struts2 值栈与类型转换
- struts2值栈与类型转换
- Struts2开发基本配置与类型转换
- Struts2框架14.类型转换与国际化
- 值,类型与类型转换
- 【Struts2】:Struts2的类型转换
- struts2类型转换
- struts2类型转换续
- Struts2的类型转换
- struts2 类型转换流程
- Struts2中的类型转换
- [struts2]类型转换笔记
- struts2的类型转换
- Struts2之类型转换
- struts2的类型转换
- struts2 类型转换
- struts2 类型转换
- Struts2类型转换
- 中文词性标注的简单实现
- arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别
- 向量,点积和叉积
- 前端之旅开启
- Vue.js之HelloWorld
- struts2值栈与类型转换
- ssh整合文件配置
- Find The Multiple
- Android studio的安装于常见问题
- Shell常用命令
- 水仙花数
- 开通博客
- 赛马问题
- 【Ubuntu】VMware 12安装Ubuntu 16.10出现“客户机操作系统已禁用cpu”