定义控制器(Action) - lonesafe/roubsite GitHub Wiki
RoubSite控制器需要继承父类(com.roubsite.web.action.RSAction),继承该类后编译器会提示需要实现execute方法,直接自动完成代码实现该方法即可,如果访问地址中没有方法名则默认执行该方法操作。 Roubsite的控制器是一个类,而操作则是控制器类的一个公共(public)方法。 下面就是一个典型的控制器类的定义:
public class IndexAction extends RSAction {
@Override
public void execute() throws Exception {
this.display("index.html");
}
}
当该类位于index模块下的action文件夹时,访问http://localhost/roubSite/index 后会使用Smarty解析index.html并返回至前端。 控制器通常继承RSAction类或者其子类,例如:
import com.roubsite.web.action.RSAction;
public class LoginAction extends RSAction {
@Override
public void doLogin () throws Exception {
//登录
}
@Override
public void doLogout () throws Exception {
//注销
}
}
控制器的命名方式是: 控制器名(驼峰法,首字母大写)+Action 。 访问时的URl命名格式是: 控制器名(首字母小写)/方法名(去掉do) 注意: URl不具体到哪个方法名时默认执行execute方法。 LoginAction控制器类的doLogin方法和doLogout方法就是操作方法,访问下面的URL地址: http://localhost/roubSite/login/login http://localhost/roubSite/login/logout 操作的方法必须为公开(Public)方法,否则会报错。 注意:定义控制器方法的时候,尽量避免和系统的保留方法相冲突(除非你非常明确自己在做什么),这些保留方法名包括但不限于:
display
$_G
$_P
I
g
a
getParamSet
getSession
print
println
assign
error
success