structs里面的三种传值方式,中文处理问题,还有简单的数据校验

三种传值方式:

1,第一种方式是直接用参数来接受数值:      

使用action属性接收参数<a href="user/user!add?name=a&age=8">添加用户</a>,

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) {
this.age = age;
}

2,使用Domain Model接收参数<a href="user/user!add?user.name=哈啊&user.age=8">添加用户</a>

private User user;

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

3,使用dto,dto在传值的过程中起到的作用是搬运。设计一个与需要传递表单对应的对象去接受,然后再new domain model(dto);



中文传值问题:

1,System.out.println("name=" + new String(user.getName().getBytes("iso8859-1"),"gb2312"));

2,    <!--这个是struts的bug-->
    <constant name="struts.i18n.encoding" value="gbk" /> <!-- internationalization -->这不知道能不能用

3,过滤器用老的:

  <filter>
        <filter-name>struts2</filter-name>
        <!--<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>-->
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>


    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


简单的数据校验:

public String add() {
if(name == null || !name.equals("admin")) {
this.addFieldError("name", "name is error");
this.addFieldError("name", "name is too long");
return ERROR;

return SUCCESS;
}

<!---需要调用structs的标签库--><%@taglib uri="/struts-tags" prefix="s" %><!--调用的是structs的标签库-->

!---User Add Error! 
<s:fielderror fieldName="name" theme="simple"/>
<br />
<s:property value="errors.name[0]"/>
<s:debug></s:debug>





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值