刚学struts。想问一个比较愚蠢的问题在一个action类中,get和set方法何时调用?还有,form中的参数究竟映射的是action类中的什么值?
解决方案 »
- 注册配置jsp的访问路径
- JSP&java.lang.ClassNotFoundException: com.microsoft.JDBC.sqlserver.SQLServerDriver 的问题
- 【急】JSP做RTX的短信二次开发
- JSP读取数据库乱码问题,帮忙看看
- CVS如何搭建请教高手
- 在MyEclipse 7.5中使用JSP调用Servlet该如何运行呢?
- 读取的数据进行运算
- 100分求jsp+dree控件+javabean+sqlserver实现动态树的实例
- 一个关于数据源的连接问题
- 请问有谁知道从哪里可以得到这样一个jsp做网站的框架吗?
- 谁给我推进个好看的网站留言板html模板?
- jsp中css问题
而且这个username有get/set方法。当struts接受这个action请求时,struts调用 username的set方法把前台的值传到action中的username,当action处理完成,要返回到页面时。在生成jsp的过程中,你可以在页面中使用EL,
${username},这时调用username的get方法。
骆驼命名法 跟 OOP有啥关系?
一个函数名而已,怎么写都可以调用。但问题是struts里面seta() 就没效果!
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class T1 { public static void main(String [] args){
try {
//以前我们都是常规方法直接new 一个Bean,但是在一些情况下,我们外部程序并不知道Bean的内部结构。
//而只知道这个Bean的属性名,属性类型 等。比如在配置Hb时,就配置属性名和类型,也就是这个原理
Class c = Class.forName("Bean");
Object object = c.newInstance();
//访问普通Bean 的public方法 属性 id
Field field = c.getDeclaredField("id");
field.set(object, 1);
System.out.println(field.get(object));
/**
* 由于username是私用字段,通过以上方式访问报错,只能通过以下方式
*
* 在一般情况下我们只知道某个私有属性的名字,它不能直接访问,那要怎么访问呢,
那就有一个java bean的标准,让我们知道 像属性username还可用方法 setUsername/getUsername来访问
这里就说明了bean的set/get标准方法的意义
*/
//写私有属性
field = c.getDeclaredField("username");//字段名已知
Method method = c.getDeclaredMethod("setUsername", field.getType());//方法名按java Bean的规定
method.invoke(object, "name");
//读私有属性
method = c.getDeclaredMethod("getUsername",null);//方法名按java Bean的规定
Object username = method.invoke(object, null);
System.out.println(username);
/**
* 最后说明为什么不是把username直接写成public,
* 因为在setUsernae或getUsername时,你还可以做一些操作,可以作一些业务逻辑。
* 不然不真成了属性了。
*/
} catch (Exception e) {
e.printStackTrace();
}
}
}class Bean{
//普通公有属性
public Integer id;
//标准的java bean set/get方法
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
这个是开发struts的人定的标准,并没有特定的意义,只是为了让它规范化,有一个统一的标准。
+1规范是没有理由的,跟
if(){
..
}else{
..
}
一样,java语法就是这样定的,没有为什么