这里记录的是在看ACT官网的文档时有不理解的地方,请教过作者@greenlaw110大神之后记录的一些东西。
- Controller调用模板的条件是什么?
- 一定要有对应的模板文件
- 如果方法内部没有跳转(redirect()),就会调用对应的模板,如果方法有返回值的话,返回值会被传入模板中定义的result参数中(这个要自己声明,而且一定要叫result)
- 如果在有模板的方法中想要跳转的话,要用throw redirect(),这样的话就会跳转而不是调用模板
- 向模板中传递参数的方法。
- 直接return对应参数 ,比如return "hello"; 但是这种情况要在模板中定义result参数 @args String result
- 方法无返回参数,使用render("hello"), 这样可以传递多个参数
- 方法返回类型为org.osgl.mvc.result.Result时,使用return render("hello") 具体效果同上
- 上传文件
- 文档中提到的用File接收参数的话会丢失原来的文件名,如果需要获取文件名,要用SObject类型接受参数,然后getAttribute("filename")来获取文件名
- 调用其他模板(这里还有些问题。。。。)
- 如果需要调用其它模板的话,可以使用renderTemplate("/cn/.../abc.html");路径是resources/rythm后面的全路径,如果类或方法中多次用到此方法,可以使用注解 @TemplateContext("/cn/...")来减少路径长度
- 向模板中传递参数时一定不要使用匿名参数,要将参数赋值到变量上,变量名要和模板中声明的变量名相同