ZendFramework-2.4 源代码 - 关于MVC - View层 - 控制器返回值
<?php
class ReturnController extends AbstractActionController
{
public function returnAction()
{ // 返回方式一 :会被dipatch处理器Zend\Mvc\View\Http\CreateViewModelListener::createViewModelFromArray(...)的拦截处理
return array('key1' => 'key1value'); // == new ViewModel(array('key1' => 'key1value')); // 返回方式二: 会被dipatch处理器Zend\Mvc\View\Http\CreateViewModelListener::createViewModelFromNull(...)的拦截处理
return null; // == new ViewModel(); // 返回方式三:会避过dipatch处理器Zend\Mvc\View\Http\InjectTemplateListener::injectTemplate(...)的拦截处理
// case.0
{
$viewModel = new ViewModel(array(
'key1' => 'key1value',
));
$viewModel->setTemplate('module1/ctrl1/action1'); // 使用模板,可以不用设置,会自动识别
$viewModel->setTerminal(false); // false表示使用布局模板,默认是false
$viewModel->setCaptureTo('content'); // 放入布局文件的中的变量中
return $viewModel;
}
// case.1
{
// 模板
$data = array(
'key1' => 'key1value',
);
$viewModelTop = new ViewModel($data);
$viewModelTop->setTemplate('module1/ctrl1/action1'); // 使用模板,可以不用设置,会自动识别
$viewModelTop->setTerminal(false); // false表示使用布局模板,默认是false
$viewModelTop->setCaptureTo('content'); // 放入布局文件的中的变量中
$viewModelTop->setVariables(array(
'childrenStr'=>''
)); // 子模板
$viewModelSub = new ViewModel($data);
$viewModelSub->setTemplate('module1/ctrl1/action1sub');
$viewModelTop->addChild($viewModelSub,'childrenStr',true);
return $viewModelTop;
} // 返回方式四: 会避过后续所有的dipatch处理器的拦截处理
$reponse = new \Zend\Http\PhpEnvironment\Response();
{ // headers $reponse->setStatusCode(200); $headers = new \Zend\Http\Headers();
$reponse->setHeaders($headers); // 添加http响应的cookie头
$cookie = new \Zend\Http\Header\Cookie(array(
'key1'=>'key1_value',
'key2'=>'key2_value',
));
$headers->addHeader($cookie); // 添加http响应的server头
$server = new \Zend\Http\Header\Server('nginx/1.6.2');
$headers->addHeader($server);
}
{ // Content
$reponse->setContent('<html><head></head><body><div>hello,i am zend framework 2.4 !</div></body></html>');
} return $reponse;
} }
ZendFramework-2.4 源代码 - 关于MVC - View层 - 控制器返回值的更多相关文章
- ZendFramework-2.4 源代码 - 关于MVC - View层 - 视图渲染器、视图插件管理器
<?php // 1. 视图渲染器 class PhpRenderer implements Renderer, TreeRendererInterface { /** * 插件管理器 */ p ...
- ZendFramework-2.4 源代码 - 关于MVC - View层 - 在模板内渲染子模板
<?php // 方式一: // 1.在模板内直接编写如下内容即可 $viewModel = new ViewModel(); $viewModel->setTemplate('album ...
- 获取layer.open弹出层的返回值
正在开发的车联网项目用到了layer API.当我在开发“新建电子围栏”的时候需要弹出地图,用户在地图中画一个区域,最后将这个弹出层的数据返回给原页面.下面是我的实现过:程: 触发弹出层的代码: la ...
- Spring MVC控制层的返回类型--String类型与Bean类型
SpringMVC控制层的返回类型形式多样,现拿其中的两种--String类型与Bean类型作以说明. 一.测试项目的结构 说明:(jsp的名字没起好) 控制层:UserController.java ...
- Asp.net mvc中Controller的返回值
(1)EmptyResult:当用户有误操作或者是图片防盗链的时候,这个EmptyResult就可以派上用场,返回它可以让用户啥也看不到内容,通过访问浏览器端的源代码,发现是一个空内容: public ...
- MVC中常用的返回值方法
我们上边所看到的Action都是return View();我们可以看作这个返回值用于解析一个aspx文件.而它的返回类型是ActionResult如 public ActionResult Inde ...
- Spring MVC中 controller方法返回值
1.返回ModelAndView 定义ModelAndView对象并返回,对象中可添加model数据.指定view 2.返回String 1.表示返回逻辑视图名 model对象通过 model.add ...
- mvc中actionresult的返回值类型
以前一直没注意actionresult都能返回哪些类型的类型值(一直用的公司的内部工具类初始化进行返回的),今天跟大家分享一下(也是转载的别人的日志qaq). 首先我们了解一下对action的要求: ...
- MVC控制器返回值
public ActionResult Index(string id)//主页 //参数string searchString 访问方式为index?searchString=xxxx .参数str ...
随机推荐
- (转)CentOS系统启动流程图文详解
CentOS系统启动流程图文详解. 原文:http://www.linuxidc.com/Linux/2017-03/141966.htm 熟悉系统启动流程对于我们学习Linux系统是非常有帮助的,虽 ...
- CAST 变类型,如 SELECT CAST('12' AS int)
select distinct CAST(value as signed) valueprice,CAST(value as signed) valueid from app_coupon
- 是时候搞清楚 Spring Boot 的配置文件 application.properties 了!
在 Spring Boot 中,配置文件有两种不同的格式,一个是 properties ,另一个是 yaml . 虽然 properties 文件比较常见,但是相对于 properties 而言,ya ...
- Java 内存模型(一)
打算花比较长的篇幅来描述下自己理解的JVM,尽量描述的清晰易懂一些,从简单慢慢到慢慢深入,一方面自己也复习一下,一方面也供大家参考,少走些弯路.鉴于本人水平有限,如有错误的地方,欢迎指出,感谢. 一段 ...
- 【图解】我使用过的 Dubbo 和 Spring Cloud
自从2015年毕业开始从事 Java 开发工作,已经过去3年多了, 在各种不知名的小公司待过,经历过生产力从低到高,技术从落后到先进的过程, Dubbo 和 Spring Cloud 就是我曾经所经历 ...
- Mybatis的小计
1连接池 一 我的错误想法 poolMaximumIdleConnections 最大活跃连接数 poolMaximumActiveConnections 最大空闲连接数 我一直以为 空闲是一直存在的 ...
- Java 多线程的实现方法
package com.jckb; /**多线程实现的两种方法 * * @author gx * */ public class Test2 { public static void main(Str ...
- ElasticsearchIllegalArgumentException[failed to find analyzer [ik]]问题解决
ElasticsearchIllegalArgumentException[failed to find analyzer [ik]] 没有找到分词器 请查看本博客经得住实践的文章:http://bl ...
- Java的Map和Object之间的相互转换方法
public staic Map<String, Object> objectToMap(Object obj) throws Exception { if(obj == null) re ...
- 项目开发bug记录
项目开发中遇到了一个问题,类中出现未知属性 ‘ $jacocoData ’,准确的来说,实际上在集成测试阶段,系统自动运行测试用例时,抛出来的异常提示信息,但是在开发阶段是不存在的.这个问题是以前没有 ...