解决方案 »
- 解析这样的xml办法
- 怎样才能成为Java高手?Java高手必备那些技能??
- spring的事务处理TransactionInterceptor与TransactionProxyFactoryBean之间的区别
- struts2的配置文件struts.xml中package可以有多个继承吗?
- 为什么我在csdn上写了我的博客,可是打开的时候说我访问的资源打开错误,总是出问题
- DOM 与 SAX 我到底该用哪个呢?
- 怎么样在struts框架中提取验证码
- ■■请问怎么样在Application里调用Tomcat5.0.28创建的连接池?
- 询问Java入门教材...
- 谁知道myeclipse enterprise workbench的subcriptor 和 subscription code
- 使用反射调用方法传对象报错 java.lang.reflect.InvocationTargetException java.lang.NullPointer
- 理解面向接口编程,面向接口编程的优势,以及对系统设计的影响
那直接在后台验证吧,拿到参数后先验证,如果格式不符合规格,就用默认值替换。
public void validate() {
//System.out.println("执行校验"+age); // 这里得到的age值就不是url传递过来的字符串,而是整数的默认值0
super.validate();
}
.......
private int age;
@Override
public String execute() throws Exception {
System.out.println(age);
return super.execute();
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
像下面这样传递过去的后台肯定出问题,关键是如何避免出问题呀
看第一种方法,拦截器通过set方法自动赋值的。
把set方法改写下,将传入的age设置为string型,然后再赋给类中的age属性。public void setAge(String age) {
// 如果age不是纯数字,那么就给赋初值10
if (!age.matches("^[0-9]*$")) {
this.age = 10;
} else {
this.age = Integer.parseInt(age);
}
}楼主试试看,看能否解决问题
如果正常的去写程序 一个页面跳转到另外一个页面,很容易就能处理这个问题
我想的是这个struts2在进行属性自动赋值的中间有没有什么东西可以配置的,去控制某个属性的值的范围的那种。
而且,像楼主的这样的例子,在正式系统中很少的,很少让用户自己在url地址栏拼参数给后台,这时,用户怎么知道给哪些参数呢?如果是表单过来的,那直接就在前台可以校验了。
像你讲的设置初始值,我觉得在set方法中处理就是个不错的选择。
也是,正常情况没有这种情况出现的。过多研究没有多大意义,如果研究透了,可以提供补丁给struts2。哈哈