19、36_尚学堂马士兵_Struts2_OGNL_1 在访问Actoin向Action进行传值的时候 http:www.xxxxx/ognl.action?username=u&password=p; private String username(set get 方法) private String password(set get 方法) 如果用这种方式进行传值,那么在jsp页面中可以用<s:property value="username"/>进行访问值栈中的内容,没有任何问题 但是如果: http:www.xxxxx/ognl.action?username=u&password=p; private User user;(set get)方法,使用<s:property value="user"/>依然访问不到,因为如果采用dominModel的方式进行传值,必须:http:www.xxxxx/ognl.action?user.username=u&user.password=p;这样 Struts会在Action中帮助我们new一个User对象,然后把值放进去,但是必须要有User空的构造方法。如果依然使用http:www.xxxxx/ognl.action?username=u&password=p;的方式进行传值,那么在Action中必须手动的初始化User对象,Private User user = new User();这样同样可以访问的到。
20、37_尚学堂马士兵_Struts2_OGNL_2 Ognl:Object graph Navigation Language(对象图导航语言):首先看一下下面三个类之间的关系: public class OgnlAsction extends ActionSupport { private Cat cat;(set get 方法) public String m() { return "你好"; } }
public class Cat { private Dog friend;(set get 方法) }
public Dog { private String name;(set get 方法) } 在OgnlAction中包含Cat,而在Cat中包含Dog的对象friend,那么现在我想访问OgnlAction的时候,给friend肤质,我们应该这么写: http:www.xxxx/ognl.action?cat.friend.name=aaa; 用点进行导航,所以叫做"对象图导航语言"。
21、39_尚学堂马士兵_Struts2_OGNL_4 已知以下三个类中的属性和方法: public class OgnlAsction extends ActionSupport { private Cat cat;(set get 方法) private String password;(set get 方法) List<User> users = new ArrayList<User>();(set get 方法) }
public class Cat { private Dog friend;(set get 方法) private String miaomiao() { return "miaomiao"; } }
public Dog { private String name;(set get 方法) }
public class S { public static String STR = "STATIC STRING";
public static String s() { return "static method"; } }