`
stworthy
  • 浏览: 526137 次
  • 来自: ...
社区版块
存档分类
最新评论

理解控制器

阅读更多

1、创建控制器

  每个request都会创建一个控制器实例,用于处理请求,控制器能产生响应并渲染指定的视图。控制器的类名必须以Controller结尾,比如ApplicationController, HelloController等。

2、创建操作

  每个控制器可以有多个操作,每个操作将会映射到URI上,比如

public class BookController extends ApplicationController{
    public void index(){
    }
    public void list(){
    }
    public void show(){
    }
}

 将会映射到/myweb/book/index, /myweb/book/list, /myweb/book/show。

 如果一个操作不存在,将会选择index的操作,比如对于/myweb/book这个URI的请求,将会尝试查找并执行Book控制器中的index动作。

3、隐式对象

 控制器因为继承了Controller,所以可以操作Controller中的一些对象,常用的对象如下:

  • request
  • response
  • session
  • servletContext
  • flash
  • controllerName
  • actionName

 其作用可以从名称中猜到吧。

4、视图

  控制器中每个动作一般都会渲染一个视图,默认将使用JSP视图,即对于上面的Book控制器,将会对应使用/WEB-INF/views/book目录中的index.jsp, list.jsp, show.jsp页面。

  每个控制器将对于一个目录,目录名称对应控制器名称,但必须是小写的,每个动作将对应一个模板文件,这依赖于动作所使用的视图类型。

  框架支持多种视图的类型,并且可以自行扩展,比如可以使用JspView, TextView, JsonView, FreeMarketView, BinaryView等,那么如何使用不同的视图类型呢,这通过动作的返回值进行选择。比如

    public JsonView create() throws Exception{
        Map<String,Object> result = new HashMap<String,Object>();
        result.put("success", true);
        //...
        return new JsonView(result);
    }

 这个create动作将使用JsonView视图,也即返回json的字符串信息。其他使用视图的方式类推,如果没有明确指定何种视图,即返回值是void的情况,将会默认使用Jsp视图。

 

分享到:
评论

相关推荐

    QPR_QPR控制器_QPR_QPR控制_

    Simulink模型能够帮助用户直观地理解控制器的工作原理,以及如何通过改变不同参数来影响量子系统的相位。 通过这个模型,研究者可以模拟各种实际操作场景,例如在噪声环境中测试控制器的稳定性,或者研究如何在特定...

    500W电动车控制器原理图

    500W电动车控制器原理图文档将详细展示这些电路的布局和连接方式,帮助读者理解控制器的工作原理和设计思路。通过深入学习和理解这份原理图,不仅可以提高电动车维修和保养技能,也为DIY爱好者提供了宝贵的参考资料...

    非线性系统理论 第二次作业 EMK控制器与自适应控制器设计

    在文件"assign2_tuning_adaptive.m"和"assign2_adaptive.mdl"中,可能包含了EMK控制器的参数调整和仿真过程,这有助于理解控制器性能的优化。 自适应控制器则是另一种处理非线性系统的方法,它能够根据系统的实际...

    10A培太阳能充电控制器原理图加代码完全开放

    开源代码为学习者和开发者提供了宝贵的资源,他们可以深入理解控制器的工作原理,定制功能,或在此基础上开发新的应用。此外,社区的共享与交流也能促进技术的进步和创新。 总结,"10A培太阳能充电控制器"项目不仅...

    matlab开发-带控制器的CUK转换器

    4. 运行仿真,观察输出电压随时间的变化,理解控制器如何调整占空比以维持稳定输出。 5. 调整控制器参数,观察系统性能的变化,进一步理解控制器参数优化的重要性。 同时,`license.txt`文件可能是MATLAB软件的许可...

    电子设计资料_仿PLC控制器DXP资料及其相关资料.zip

    了解上位机的开发和使用,有助于我们理解控制器与外部世界的交互方式,以及如何通过编程实现远程控制和数据采集。 最后,“个人总结的M8程序”和“参考程序”提供了开发者的实践经验,这是一份宝贵的学习资源。通过...

    控制器的作用规律全解PPT学习教案.pptx

    本次PPT学习教案的目的是为了让学习者能够全面理解控制器的作用规律,以及它在不同控制系统中的具体应用。 控制器的作用规律包括了作用规律和作用强度两个方面。作用规律决定了控制器输出量如何根据输入信号变化,...

    大型电机闭环电机控制器硬件设计文件+固件源码.zip

    5. **通讯协议**:学习如CAN、SPI、UART等常用串行通讯协议,理解控制器如何与外部设备进行数据交换。 6. **故障诊断与处理**:掌握常见故障的识别方法,以及在固件中如何设计相应的保护机制。 通过研究这个大型...

    已经成功FPGA控制的SDRAM控制器代码

    1. rd1007.pdf:这可能是一个关于FPGA或SDRAM技术的文档,或者是设计指南,帮助用户理解控制器的工作原理。 2. readme.txt:这是一个常见的文本文件,通常包含有关压缩包内容的简要说明或使用指导。 3. ...

    计算机组成原理-微程序控制器实验.zip

    这个"计算机组成原理-微程序控制器实验.zip"文件包含了关于微程序控制器的实验资料,包括电路图、运行过程的录屏,这些内容对于学习者深入理解微程序控制器的工作机制非常有帮助。 微程序控制器,也称为微码控制器...

    微程序控制器实验总结报告

    本实验的目的是让参与者深入理解微程序控制器的工作原理,掌握其组成、设计方法以及调试技巧。 微程序控制器的核心思想是将机器指令分解为一系列更细粒度的微指令(Microinstructions),这些微指令在控制存储器...

    zookeeper;sdn多控制器_SDN_zookeeper;sdn多控制器;_sdncontroller_

    在实际部署中,开发者和网络管理员需要对ZooKeeper的配置、调优和监控有深入理解,以确保在多控制器环境中,ZooKeeper能够充分发挥其作用,支持SDN网络的高效运行。同时,持续关注ZooKeeper和SDN技术的最新进展,...

    计算机组成原理课程设计报告.doc

    ZY15Comp12BB计算机组成原理教学实验系统的使用,让学生能够以实践方式接触和理解控制器的组成,诸如控制存储器、微命令寄存器和微地址寄存器等部件。控制存储器使用EPROM来保证微指令在断电后仍能够得到保护。微...

    无线风扇控制器 控制器

    首先,我们要理解无线风扇控制器的核心技术。这通常涉及到微控制器(如Arduino或Raspberry Pi)和无线通信模块(如Wi-Fi或蓝牙)。微控制器是系统的大脑,负责接收用户的指令并控制风扇的开关、速度等参数。无线通信...

    Proteus 8 tec-8微程序控制器实验 单proteus源程序.zip

    通过这个实验,学习者不仅可以深入理解微程序控制器的工作原理,还能掌握Proteus 8的使用技巧,提升硬件设计和软件调试的能力。此外,对于微程序设计的实践,也有助于理解计算机系统中硬件与软件的交互,对于进一步...

    8051微控制器【第四版】(加拿大-麦肯齐 著).pdf

    书中不仅提供了基础知识点,还有丰富的实例和解决方案,帮助读者更好地理解8051微控制器的工作原理和应用开发。 书中的内容提要明确指出,本书通过强调技术实现细节、工程观念和理论与实践结合,使读者能够掌握8051...

    s-function编写PID控制器

    总之,"s-function编写PID控制器"提供了亲自动手实现和理解PID控制器的机会,这对于学习控制理论和MATLAB编程的人来说是一次宝贵的实践经历。通过这种方式,不仅可以提升编程技能,还能加深对控制系统设计的理解。

    【阿里云】深入浅出Kubernetes项目实战手册(超详细127页).pdf

    Kubernetes作为现代云...通过类比设计一个简易的冰箱,我们可以形象地理解控制器的产生、功能和实现方法。这种理解方式不仅有助于深入掌握Kubernetes的集群控制器,还能够帮助我们更好地管理和扩展自己的容器化应用。

    IAI X-SEL 控制器说明书

    这些技术细节对于深入理解和使用IAI X-SEL控制器是非常必要的。 由于文档内容是通过OCR扫描得到的,可能会有些许的错误或不清晰之处,所以理解内容时需要仔细辨识并校对,确保理解的准确性。文档中提到的一些指令...

Global site tag (gtag.js) - Google Analytics