http://blog.sina.com.cn/s/blog_77e3246601014zru.html


ssh框架总结之action接收参数的三种方式

页面将参数传递给action的三种方式:


一是通过属性传值:

将页面和action的的属性值保持一致,在action上写上该属性的set和get方法,这样在页面提交参数的时候,action就会调用set方法将参数值传递给其属性,这种方式主要适用于传递参数比较少的情况!


二是通过DomainModel传值:

DomainModel即域模型,是利用model层的域对象接收参数的一种方式。这个用例子比较容易说明点:
action代码如下:
//使用DomainModel传值方式
private FactoryMsg factorymsg;
public FactoryMsg getFactorymsg() {
return factorymsg;
}
public void setFactorymsg(FactoryMsg factorymsg) {
this.factorymsg = factorymsg;
}  
页面代码:
厂房名称:<input id="factorymsg.name" name="factorymsg.name" type="text" maxlength="10"/>
厂房购买价格:<input id="factorymsg.buy" name="factorymsg.buy" type="text" maxlength="10"/>

三是通过ModelDriven传值:

action必须实现ModelDriven接口,且需要重写getModel()方法;例子如下:
action代码如下(不需要写get,set方法):
//使用DriverModel传值方式
public class IndexInfoAction extends ActionSupport implements ModelDriven<LineMsg> {
private LineMsg linemsg = new LineMsg();
public LineMsg getModel() {
return linemsg;
}
页面代码如下(这里的id名称必须和model层的属性名一致):
生产线的名称:<input id="name" name="name" type="text" maxlength="10"/> <br />
购置费:<input id="buy" name="buy" type="text" maxlength="10"/> <br />

上面的第二种和第三种方法都比较适合用于需要传递很多参数且参数都在一个model对象中的情况,个人对于action传值的方式主要就是以上总结了,希望有所帮助!

ssh框架总结之页面访问的方式


在框架中页面文件主要有两种放置位置:


一种是放在WEB-INF文件夹下,当然可以在该文件夹下新建文件夹,或者直接放在里面;这种方式主要是为了保护那部分jsp页面,如果没有登录验证,那部分jsp页面用户是不可以直接访问的,即在网址栏直接输入网址访问的方式,这样做就不用对每一个页面进行登录验证,可以减少一些代码和bug。要想访问这些页面,就只有通过放在WEB-INF外部的页面引入,即必须通过action来实现页面跳转。


另外一种就是直接放置在WEB-INF外面,这样页面就可以不通过访问action来查看其他页面了。这样做在页面的跳转的时候就可以直接使用超链接的页面地址进行访问,即页面之间的跳转很方便,当然其安全性就会下降,为了加强安全性,那登录验证的代码就必须加上了。
在实际项目中,这两种放置方式经常是一起使用的,这样既可以减少代码量,同时安全性也可以得到保证!