前面讲了Tiny快速入门之服务开发和Tiny快速入门之Web界面快速开发实践,也就是说开发服务和界面都没有问题了,很明显要做一个完整的系统还是不够的,因此肯定有控制层,才可以把整个过程打通。
复制代码
控制层充当着界面和服务之间协作的角色。控制器从界面层接收用户输入的信息,然后调用服务来执行特定的处理,并把最终的结果回传给界面层进行渲染。
Tiny框架中控制层的写法可以有许多种:
- 集成Struts或其它方案来完成
- 按Tiny框架的要求代码来完成
- 通过Tiny页面流来完成
集成Struts等方案,这里不再叙述,仅介绍通过Tiny框架来实现的方式:
一、通过代码编写控制层逻辑1.代码示例
- @Controller()
- public class HelloAction implements WebContextAware{
- private WebContext webContext;
- public void setContext(WebContext webContext) {
- this.webContext = webContext;
- }
- @RequestMapping(value={"/helloByMvc.do"})
- @View(value="/helloworld/helloresult.page")
- public void sayHelloMethod(String name) {
- if (name == null) {
- name = "world";
- }
- webContext.put("result", String.format("Hello, %s", name));
- }
- }
解释
@Controller()表示这个类是个控制层的类。
implements WebContextAware表示,这个要类要注入Web 上下文对象。
@RequestMapping(value={"/helloByMvc.do"})表示响应/helloByMvc.do请求,注意,这个可以有多个值。
@View(value="/helloworld/helloresult.page")表示执行完毕之后转到/helloworld/helloresult.page页面进行渲染。
WebContext,也就是Web上下文,是Tiny Web框架中的一个重要类,用于在上面放置各种数据。
你可以把它理解成像Map一样的东西,可以不断的往里面塞东西,塞进去的,在展现层就是可见的。
当然,对于上面这么简单的类子,其实不用实现WebContextAware接口,这个时候的写法如下: