Freemarker:获取包含(前缀)的模板(Freemarker: getting a Template with include (prefix))
我尝试以下方法:
MainTemplate.ftl
<root> <#List items as item> <#include "custom_item.ftl"> [Option 1] </#List> <#include "custom_item.ftl"> [Option 2] </root>
custom_item.ftl
<root> <name>${name}</name> </root>
在某些文件中,include包含[Option 1],其他文件包含[Option 2]。 要访问$ {name}变量,我必须使用两种不同的方式:
- Option 1: ${item.name} - Option 2: ${name}
完全可以理解,但也是我的问题。 我怎样才能确保它始终有效? 就像为include提供前缀一样,它总是一样的。
例如:
MainTemplate.ftl
<root> <#List items as item> <#include "custom_item.ftl" prefix='item'> [Option 1] </#List> <#include "custom_item.ftl"> [Option 2] </root>
custom_item.ftl
<root> <# assign prefix = prefix?root> <name>${prefix.name}</name> </root>
然后总能工作。 我的方法显然不起作用,有人有一个有效的解决方案吗?
编辑:包括答案
MainTemplate.ftl
<root> <#List listItems as listItem> <#assign item = listItem> <#include "custom_item.ftl"> </#List> <#assign item = .data_model> <#include "custom_item.ftl"> </root>
custom_item.ftl
<root> <name>${item.name}</name> </root>
Im trying the following:
MainTemplate.ftl
<root> <#List items as item> <#include "custom_item.ftl"> [Option 1] </#List> <#include "custom_item.ftl"> [Option 2] </root>
custom_item.ftl
<root> <name>${name}</name> </root>
In some files the include is like [Option 1], in others as [Option 2]. To access the ${name} variable i have to use 2 different ways:
- Option 1: ${item.name} - Option 2: ${name}
Totally understandable, but also my issue. How can i make sure it always works? Like supplying a prefix to the include so its always the same.
For example like:
MainTemplate.ftl
<root> <#List items as item> <#include "custom_item.ftl" prefix='item'> [Option 1] </#List> <#include "custom_item.ftl"> [Option 2] </root>
custom_item.ftl
<root> <# assign prefix = prefix?root> <name>${prefix.name}</name> </root>
Which then always would work. My approach clearly doesnt work, does someone has a solution that does work?
Edit: Answer included
MainTemplate.ftl
<root> <#List listItems as listItem> <#assign item = listItem> <#include "custom_item.ftl"> </#List> <#assign item = .data_model> <#include "custom_item.ftl"> </root>
custom_item.ftl
<root> <name>${item.name}</name> </root>
原文:https://stackoverflow.com/questions/43071032
最满意答案
尝试使用此命令行:
sudo cp -r ~/Desktop/cgi-bin /opt/lamp/cgi-bin
try with this command line :
sudo cp -r ~/Desktop/cgi-bin /opt/lamp/cgi-bin
相关问答
更多-
他们没有。 唯一的限制是CGI脚本必须在deirectory中 Options +ExecCGI 指令已打开,并且在默认的Apache配置中,/ cgi-bin目录已启用此选项。 但没有什么能阻止你在其他目录中启用CGI。 有些人认为将所有CGI脚本放在一个地方更安全。 They don't have. The only restriction is that CGI scripts have to be in deirectory which has Options +ExecCGI directiv ...
-
CentOS 6.5内的cgi-bin(cgi-bin within CentOS 6.5)[2022-01-01]
它应该在 var/www 您也可以尝试执行此操作 find -name "*cgi-bin*" It should be under var/www You could also try executing this find -name "*cgi-bin*" -
cakephp 3文件夹/文件结构+ cgi /www /bin/ /cgi-bin/ <----------------- /logs/ ... /webroot/ .htaccess <------------ edit this file 的.htaccess
RewriteEngine on RewriteRule ^cgi-bin$ cgi-bin/ [L] RewriteRule ^c ... -
您可以尝试httpd.conf添加到您的httpd.conf或您的Web服务器配置文件中
SetHandler python-script Options +ExecCGI 另请参见: mod-python You can try adding the following lines to your httpd.conf or you web-server config file你必须给web服务器用户写入cgi-bin文件夹的权限。 通常情况下,Web服务器用户就像nobody并且与文件夹的所有者不在同一个组中,所以这意味着要使cgi-bin成为世界可写的: chmod a+rwx cgi-bin (或者,在Windows上为cgi-bin设置权限以使每个人都完全控制)。 这是一个非常糟糕的主意。 现在,您的服务器上的任何用户或任何未正确检查其文件名的脚本都可能在cgi-bin中创建一个文件,并将其解释为CGI脚本并执行。 这是让您的服务器拥有的好方法。 运行时编写的文件应该放 ...如果删除了ScriptAlias指令,则应该ScriptAlias添加到目录的主配置或.htaccess文件中: Options +ExecCGI AddHandler cgi-script py If you removed the ScriptAlias directive, you should probably add the following lines into the main config for the directory or into .htaccess file: Options ...在documentroot(cgi-bin文件夹)之外运行PHP文件(Running PHP file outside of documentroot (cgi-bin folder))[2023-02-16]
我认为你的cgi-bin需要一个部分。 您的服务器可以向您显示脚本源这一事实意味着服务器至少具有对/ file / system / path / to / cgi-bin和IIRC的读取权限,这与ScriptAlias发生冲突b / c ScriptAlias期望/ file / system / path /由于安全原因,/ cgi-bin无法访问。 我认为你的解决方案应该看起来像以下几点:Options Exe ... 此Microsoft知识库文章擅长帮助识别IIS配置文件可能存在的各个位置: http : //technet.microsoft.com/en-us/library/cc754617%28WS.10%29.aspx 根据我的经验,web.config放置在您的应用程序(而不是虚拟目录)配置的位置,但并非总是如此。 This Microsoft KB article is good at helping identify the various locations the IIS config files ...尝试使用此命令行: sudo cp -r ~/Desktop/cgi-bin /opt/lamp/cgi-bin try with this command line : sudo cp -r ~/Desktop/cgi-bin /opt/lamp/cgi-bin使用apache2在cgi-bin中执行.py文件时出错404(404 error while executing .py file in cgi-bin using apache2)[2023-07-14]
在您的Apache配置中,如果您想要承载您的mod_python脚本,您需要将Directory指令更改为:。 更新: 您将您的Python脚本放在/var/www/cgi-bin但/cgi-bin/被定义为指向/usr/lib/cgi-bin 。 您需要在/cgi-bin/一个位置进行标准化 。 以下是我会建议您更正的Apache配置。 请注意,我没有删除任何行,只是将不需要或已被替换的行注释掉了。 ... 相关文章
更多- FreeMarker模板包含及名称空间
- FreeMarker标签与使用
- Java模板引擎 FreeMarker介绍
- 《Joomla 2.5 模板教程:宁皓网》(Create a Joomla 2.5 Template)前两章 + 模板资源[光盘镜像]
- FreeMarker基本标签的使用
- FreeMarker入门教程
- 怎么在 Fitler 中取得 jsp:include 中的URL
- FreeMarker在领悟教程网实战应用
- FreeMarker与SpringMVC整合
- freemarker 空值处理
最新问答
更多- 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
- 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
- OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
- 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
- codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
- 在计算机拍照在哪里进入
- 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
- No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
- 单页应用程序:页面重新加载(Single Page Application: page reload)
- 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
- System.StackOverflow错误(System.StackOverflow error)
- KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
- 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
- android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
- TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
- 企业安全培训的各项内容
- 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
- C#类名中允许哪些字符?(What characters are allowed in C# class name?)
- NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
- 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
- 将多个行和可变行移动到列(moving multiple and variable rows to columns)
- 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
- 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
- Angular $资源不会改变方法(Angular $resource doesn't change method)
- 在Angular 5中不是一个函数(is not a function in Angular 5)
- 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
- 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
- 常见的python rpc和cli接口(Common python rpc and cli interface)
- Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
- 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)