Web框架技术开发初级实验指导书10级(3)

2018-12-29 21:27

/user_add_success.jsp

使用Domain Model (实体模型) 接收参数

Struts2_0800_DomainModelParamInput

使用Domain Model接收参数

添加用户

public class UserAction extends ActionSupport { private User user;

//private UserDTO userDTO; public String add() { System.out.println(\ + user.getName()); System.out.println(\ + user.getAge()); return SUCCESS;

}

public User getUser() { return user;

}

public void setUser(User user) { this.user = user; }

}

public class User { private String name; private int age;

public String getName() { return name;

}

public void setName(String name) { this.name = name;

}

public int getAge() { return age;

}

public void setAge(int age) {

- 11 -

}

this.age = age;

一般来说,我们输入参数不一定刚好跟我们的域模型一致,比如说:用户有name跟password两个属性,但是你输入进来的应该还有个密码确认passwordconfiguration 这时候我们要么使用属性接收,要么用DTO,或者VO

实验三:Struts2_2.1.6版本的中文问题

根据Struts文档的规定:只要在Struts.xml中配置这段话就可以解决中文乱码问题

解决办法是:一:升级到2.1.7之后的版本;二是:使用spring的filter,在web.xml中配置过滤 三:在web.xml中配置2.0版本的filter

struts2

org.apache.struts2.dispatcher.FilterDispatcher

Struts2文档的位置:

struts-2.1.8.1-all\\struts-2.1.8.1\\docs\\docs

要知道Strust.xml中有哪些常量可以配置,可以进文档里面查看 例子:

struts.i18n.encoding=UTF-8 //表示默认字符集是UTF-8 struts.action.extension=action,, //后缀名可以是“action”,或者是“”空也行。

Struts模块包含

Struts.xml中:配

相当于把文件login.xm内容l复制过来

- 12 -

Struts简单数据验证

示例程序:Struts2_1100_SimpleDataValiation UserAction.java

public class UserAction extends ActionSupport { }

Struts.xml

class=\> /user_add_success.jsp

/user_add_error.jsp

private String name; public String add() { }

public String getName() { }

public void setName(String name) { }

this.name = name; return name;

if(name == null || !name.equals(\)) { }

return SUCCESS;

this.addFieldError(\, \); this.addFieldError(\, \); return ERROR;

登陆不成功的时候,该怎么样向前台传递信息呢? 这时候其实是个麻烦事,因为我们的userAction实际上是没有跟我们的Request, response属性绑在一起的;userAction访问不到我们的Request, response,ServletContext,这些都没有,在Struts2里面是采用另外一种机制。 This.addFieldError(“name”,”name is error”);

添加对于属性校验的错误信息的,错误信息的名字一般也是我们的属性名字叫做name,那么这个属性出错,后面是这个错误的具体信息:name is error!

13

user_add_error.jsp

User Add Error!


这里调用addFieldError()之后在前面如何把它拿出来? 在这里我们用到struts2的标签

调用标签库的时候,必须这么写:

<%@taglib uri=”/struts-tags” prefix=”s”%> Struts的标签定义是位于

如果我们去看源码的话会看到它把我们的错误信息封装成: name is error!

指定成CSS修饰,这样就给我们带来不便,这是Struts2设计不太好的地方。所以Struts2展现的标签在企业开发中应用得不多,因为它都是强制要求你必须按照它的命名规则来去定义它的各种各样的展现。

那我们应该怎么样把我们的字符串拿出来?引出下一个标签,这个标签以后会很常用:

当你写了这个标签之后在页面就会默认显示这个标签 [Debug]

点开[Debug]

14

Struts ValueStack(值栈) Debug Value Stack Contents

Object Property Property Name Value texts null actionErrors [] {name=[name errors is error, name is too long]} com.bjsxt.struts2.user.action.UserAction {name=[name fieldErrors is error, name is too long]} errorMessages [] name a locale zh_CN actionMessages [] com.opensymphony.xwork2.DefaultTextProvider texts null 首先:Struts2会把Action里面的属性挨着排给你放进Value Stack 来 专门有这个标签很常用s:property

取到errors实际上是一个map:{name=[name is error, name is too long]} 那么我想取到map里面某一个key的内容:

而这时候实际上value是一个数组,所以我要想去数组的第一项

15


Web框架技术开发初级实验指导书10级(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:网上阅卷注意事项

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: