freemarker模版文件中<#if (info.metaKeywords)! != "">是什么意思

freemarker模版文件中
<#if (info.metaKeywords)! != "">

</#if>
是什么意思?
应该是判断不为空,但怎么是! !呢?

1个回答

Freemarker中,!表示逻辑非,遵循负负得正原理,这东西应该判断变量为空才对,问题是我也不知道为什么要这样写

yuese123456
紫月er 谢啦谢啦
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Freemarker的ftl文件包含jsp问题
按照Freemarker文档所示,我想要在一个ftl文件中包含一个jsp文件:<#include "../../../view/public/header.jsp">。 可是,在生成静态页面时一直提示:Error reading included file ../../../view/public/header.jsp The problematic instruction: ---------- ==> include "../../../view/public/header.jsp"。 另外,本人试了一下在ftl文件的上一级目录下引入header.jsp文件,然后在试着包含jsp文件就没有问题:<#include "header.jsp">。所以,我就怀疑是不是"../../../"Freemarker没解析出来? 希望有知道的高手帮忙解答,本人不胜感激!
freemarker: Template not found for name "xxx.ftl".
报错信息: ``` freemarker.template.TemplateNotFoundException: Template not found for name "login.ftl". The name was interpreted by this TemplateLoader: MultiTemplateLoader(loader1 = org.springframework.ui.freemarker.SpringTemplateLoader@3d5c089b, loader2 = ClassTemplateLoader(resourceLoaderClass=org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer, basePackagePath="" /* relatively to resourceLoaderClass pkg */)). at freemarker.template.Configuration.getTemplate(Configuration.java:1833) at freemarker.template.Configuration.getTemplate(Configuration.java:1646) at com.csaarg.util.framework.FreeMarkerUtil.create(FreeMarkerUtil.java:35) at com.csaarg.sharedvip.controller.ForwardController.login(ForwardController.java:33) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:116) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) ``` FreeMarker 配置: ``` <bean id="freeMarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="defaultEncoding" value="UTF-8"/> <!-- 模板路径 --> <property name="templateLoaderPath" value="/WEB-INF/freeMarker/"/> <!-- 配置文件 --> <property name="freemarkerSettings" ref="freemarkerSettings"/> <!-- 自定义指令 --> <property name="freemarkerVariables"> <map> <entry key="xml_escape" value-ref="fmXmlEscape"/> <!--<entry key="view_url" value="http://localhost:8299/Store/content/css/"/>--> <!--<entry key="JS_URL" value="http://localhost:8299/Store/content/js/"/>--> </map> </property> </bean> <!-- 配置文件 --> <bean id="freemarkerSettings" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="location" value="classpath:properties/freemarker.properties"/> </bean> <bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape"/> <!--识图解析器--> <bean id="freeMarkerViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/> <property name="viewNames" value="*.ftl"/> <property name="contentType" value="text/html; charset=utf-8"/> <property name="cache" value="true"/> <property name="suffix" value=""/> <!-- <property name="exposeRequestAttributes" value="true" /> <property name="exposeSessionAttributes" value="true" /> <property name="exposeSpringMacroHelpers" value="true" /> --> <property name="order" value="0"/> </bean> <!--对模型视图名称的解析,即在模型视图名称添加前后缀 通用解析器--> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value=""/> <property name="viewNames" value="*.html"/> <property name="suffix" value=""/> <property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView"/> <property name="order" value="1"></property> </bean> ``` Controller: ``` /** * 转发 */ @Controller public class ForwardController { @Autowired private static FreeMarkerConfigurer freeMarkerConfigurer; @Autowired private FreeMarkerConfig freeMarkerConfig; /** * 登录 * * @return */ @RequestMapping(value = "/login", method = RequestMethod.GET) public String login(HttpServletRequest request) { FreeMarkerUtil.create(request, freeMarkerConfig, "login.ftl", null, "/WEB-INF/freeMarker", "login.html"); return "/view/login.html"; } } ``` 工具类: ``` public class FreeMarkerUtil { private FreeMarkerUtil() { } /** * 生成 HTML 静态页面 * * @param request * @param freeMarkerConfig * @param templateName 模板的名称 * @param model 生成模板需要的数据 * @param filePath 相对于 web 容器的路径 * @param fileName 要生成的文件的名称,带扩展名 */ public static void create(HttpServletRequest request, FreeMarkerConfig freeMarkerConfig, String templateName, Map<String, Object> model, String filePath, String fileName) { Writer out = null; try { Template template = freeMarkerConfig.getConfiguration() .getTemplate(templateName); String htmlPath = request.getSession().getServletContext() .getRealPath(filePath) + "/" + fileName; File htmlFile = new File(htmlPath); if (!htmlFile.getParentFile().exists()) { htmlFile.getParentFile().mkdirs(); } if (!htmlFile.exists()) { htmlFile.createNewFile(); } out = new OutputStreamWriter(new FileOutputStream(htmlPath), "UTF-8"); template.process(model, out); out.flush(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (TemplateException e) { e.printStackTrace(); } finally { try { out.close(); out = null; } catch (IOException e) { e.printStackTrace(); } } } } ``` webapp 目录结构: ![](https://static.oschina.net/uploads/space/2017/0719/174655_0DYv_2353983.png) 报错行: ``` Template template = freeMarkerConfig.getConfiguration().getTemplate(templateName); ``` 参照配置:[https://my.oschina.net/HuifengWang/blog/300461](https://my.oschina.net/HuifengWang/blog/300461)
freemarker模版文件有错但不知道哪里错,求大神指点!
freemarker模版文件有错但不知道哪里错,求大神指点! <ul> <#if (allarticle??)&&(allarticle?size>0)> <#assign x=0 /> <#list allarticle as g> <#assign x=x+1/> <#if g.lname=='公司新闻'> <li class=""> <a href="${basepath}/<@ac.htmlPath?interpret/>">${g.title}</a> </li> </#if> <#if x == 5> <#break> </#if> </#list> </#if> </ul>
FreeMarker For "?c" left-hand operand: Expected a number or boolean, but this evaluated to a string (wrapper: f.t.SimpleScalar) 不明白这个错和我的写法有什么关系?
这是我的语法 <#if datas?? && (datas?size > 0)> <#list datas as head> { "sourceId":"${head.sourceId?c}", "operaType":"${head.operaType!}" } </#list> </#if> 如果改成以下,就不报错,但是我就没办法处理超过四位数带逗号的数字格式 <#if datas?? && (datas?size > 0)> <#list datas as head> { "sourceId":"${head.sourceId}", "operaType":"${head.operaType!}" } </#list> </#if> 其中 ${head.sourceId} 这个数值实际为"1480",请问这种不能加?c的语法吗?还是只能数字才可以加?c 我把"${head.sourceId?c}"改成${head.sourceId?c} 也报相同的cuo'wu
IDEA webSpringMVC项目整合Freemarker时返回视图名必须以.ftl后缀结尾
由于刚进公司,使用的框架是SSM,前端使用Freemarker,所以自己新建一个项目学习一下Freemarker。 Freemarker使用最新的2.3.29版本,Spring使用4.3.18,在网站查找配置了Freemarker的视图解析之后, Controller层返回ModelAndView却需要以.ftl结尾才能解析,否则找不到页面,因此贴出代码,让知道的小伙伴给一些意见建议,非常感谢,刚入行,还没有分,希以后有了肯定补上,望帮助一下,非常感谢。 ![图片说明](https://img-ask.csdn.net/upload/201909/20/1568983203_676907.png) ![图片说明](https://img-ask.csdn.net/upload/201909/20/1568983252_81938.png) ![图片说明](https://img-ask.csdn.net/upload/201909/20/1568983502_770695.png) ![图片说明](https://img-ask.csdn.net/upload/201909/20/1568983510_336516.png) 我个人思考了一下,应该是配置的问题,但问题出在哪儿不知道。
freemarker的<#if>中怎么使用${}表达式
freemarker的<#if>中怎么使用${}表达式,能使用传入的值吗????????
freemarker模板中怎么实现代码滚动效果?
下面是我的段代码: <div class="main_image"> <ul style="width: 812px; overflow: visible;"> <#if (allarticle??)&&(allarticle?size>0)> <#list allarticle as ac> <#if ac.nname=='行业资讯'&&ac.istop=='1'&&(ac.mainpicture)??> <li style="float: none; display: block; position: absolute; top: 0px; left: 0px; width: 812px;"> <#list ac.mainpicture?split(",") as img> <#if img_index=0> <a target="_blank" href="${basepath}/<@ac.htmlPath?interpret />"> <img src="${basepath}${img}"> </a> </#if></#list> </li> </#if> </#list> </#if> </ul> <a href="javascript:;" id="btn_prev"></a> <a href="javascript:;" id="btn_next"></a> </div> </div>
求教myeclipse使用freemarker宏的时候报错?
<input type="reset"<#rt/> <#if value!=""> value="${value}"<#elseif code!=""> value="<@s.m code/>"</#if><#rt/> <#if id!=""> id="${id}"</#if><#rt/> /> 这个tag报错,不知道为什么,是myeclipse里面需要引入一些资源吗?或者需要配置一下?
freemarker #assign 问题
java后端: List<String> signDays = new ArrayList<String>(); ...list.add("1") list.add("2")... request.setAttribute("signDays", signDays); 用了freemarker 的前端: <#assign num = "${l}"/> <#assign signDays = "${signDays}"/> <#if signDays?seq_contains(num)> 我反复看了 很多遍 感觉没错 最后报错: [ERROR] 09:24:44.152 [http-apr-8088-exec-7] freemarker.runtime - Error executing FreeMarker template freemarker.core.NonStringOrTemplateOutputException: For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to a sequence (wrapper: f.t.SimpleSequence): ==> signDays [in template "point/point.htm" at line 72, column 88]
Struts2框架,s:form表单标签使用theme="ajax"报错
## 已经导入struts2-dojo-plugin-2.3.24.1.jar,jsp页面如下: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ taglib prefix="s" uri="/struts-tags" %> <%@ taglib prefix="sx" uri="/struts-dojo-tags" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>登录页面</title> <sx:head /> </head> <body> <s:form action="Login" theme="ajax"> <table width="60%" height="76" border="0"> <s:textfield name="username" label="用户名" /> <s:password name="password" label="密码" /> <s:submit value="登录" align="center" /> </table> </s:form> </body> </html> ## 报运行时以下错误: FreeMarker template error (HTML_DEBUG mode; use RETHROW in production!) The following has evaluated to null or missing: ==> parameters.pushId [in template "template/ajax/submit.ftl" at line 103, column 6] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to be legally refer to something that's null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #if parameters.pushId [in template "template/ajax/submit.ftl" at line 103, column 1] ---- Java stack trace (for programmers): ---- freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...] at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:116) at freemarker.core.UnexpectedTypeException.newDesciptionBuilder(UnexpectedTypeException.java:60) at freemarker.core.UnexpectedTypeException.<init>(UnexpectedTypeException.java:40) at freemarker.core.NonBooleanException.<init>(NonBooleanException.java:44) 。。。 ## 去掉<s:submit value="登录" align="center" />则正常,感觉应该是submit少了什么属性,错误提示的parameters.pushId不知道是什么意思,submit应该没pushId属性吧,加上id,form加上name也没用,还是报错。 ## 求大神指点!
有关freemarker数据模型的问题,请指教..
List list1=new ArrayList(); Map map1=new HashMap(); map1.put("key1","value1"); map1.put("key2","value2"); map1.put("key3","value3"); list1.add(map1); List list2=new ArrayList(); Map map2=new HashMap(); map2.put("ok1","ok1"); map2.put("ok2","ok2"); map2.put("list1",list1); list2.add(map2); Map root=new HashMap() root.put("list2",list2); root是输出的数据模型。 问题 :这样建造数据模型是否正确?如果不正确,如何实现这种结构的数据模型? 我这样构造数据模型后,无法访问list1数据,报错!问题是一个list中是否可以嵌套list? [b]问题补充:[/b] ftl模板文件内容如下调用,是否正确? <#if list2?exists> <#list list2 as ParentList> .... <#if list2.list1?exists> <#list list2.list1 as SubList> .... </#list> </#if> </#list> </#if> [b]问题补充:[/b] ===回答================================================================== 请问如果简单的只是这样: List list1=new ArrayList(); Map map1=new HashMap(); map1.put("key1","value1"); map1.put("key2","value2"); map1.put("key3","value3"); list1.add(map1); LZ是如何访问list1呢?我是初学者,这样我都拿不出来,LZ能不能指点一下,谢谢! 01404421 (初级程序员) Map root=new HashMap(); root.put("list1",list1); <#if list1?exists> <#list list1 as ParentList> ${ParentList.key1} .... </#list> </#if> [b]问题补充:[/b] <#if list2?exists> <#list list2 as ParentList> .... <#if list2.list1?exists> <#list list2.list1 as SubList> .... </#list> </#if> </#list> </#if> 改为 <#if list2?exists> <#list list2 as ParentList> .... <#if ParentList.list1?exists> <#list ParentList.list1 as SubList> .... </#list> </#if> </#list> </#if> 谢谢各位。
freemarker变负数为正数
<#if data.ljpjsddjZf?default(' ')?index_of("-")=0>${data.ljpjsddjZf?substring(1)}</#if> 将数据库中某字段数值取出,如果为负数只输出正数部分,但是代码报错,请大家指导一下。谢谢!
spring mvc3.2.16+freemarker+tiles3为什么不能正常工作
controller ``` @Controller @RequestMapping("/welcome") public class WelcomeController { @RequestMapping(value = "/index") public ModelAndView welcomeIndex(HttpServletRequest request) { ``` String param = request.getParameter("param"); if("1".equals(param)) { ModelAndView mav = new ModelAndView("index"); return mav; } else { ModelAndView mav = new ModelAndView("welcome.index.def"); return mav; } } } spring-mvc.xml <!-- tiles setting --> <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="viewClass"> <value>org.springframework.web.servlet.view.tiles2.TilesView</value> </property> </bean> <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> <property name="definitions"> <list> <value>/WEB-INF/tiles-defs.xml</value> </list> </property> </bean> <bean id="viewResolverFtl" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="prefix" value="/" /> <property name="suffix" value=".ftl" /> <property name="contentType" value="text/html;charset=utf-8" /> <property name="viewClass"> <value> com.unicompay.framework.basedata.web.common.FreeMarkerView </value> </property> </bean> <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="defaultEncoding" value="UTF-8" /> <property name="templateLoaderPath" value="/WEB-INF/views/" /> <property name="freemarkerSettings" ref="freemarkerConfiguration" /> </bean> <bean id="freemarkerConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="location" value="classpath:conf/freemarker.properties" /> </bean> tiles-defs,xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" "http://tiles.apache.org/dtds/tiles-config_3_0.dtd"> <tiles-definitions> <!-- 基础模版定义 --> <definition name="mt.base.def" template="/WEB-INF/views/common/layout.ftl" > <put-attribute name="content" value="/WEB-INF/views/common/content.ftl" type="freemarker"/> <put-attribute name="footer" value="/WEB-INF/views/common/footer.ftl" /> </definition> <definition name="welcome.index.def" extends="mt.base.def"> <put-attribute name="content" value="/WEB-INF/views/index.ftl" type="freemarker" /> </definition> </tiles-definitions> layout,ftl ``` <#assign tiles=JspTaglibs["http://tiles.apache.org/tags-tiles"]> <@tiles.insertAttribute name="content" /> <@tiles.insertAttribute name="footer" /> ``` ``` ``` ``` ``` ``` ``` ``` ```
struts2.3 + ajax 出现黄色页面 in template "template/ajax/head.ftl" at line 45, column 28]
struts2.3 + ajax 网页出现异常: FreeMarker template error (HTML_DEBUG mode; use RETHROW in production!) The following has evaluated to null or missing: ==> parameters.parseContent [in template "template/ajax/head.ftl" at line 45, column 28] Tip: It's the step after the last dot that caused this error, not those before it. Tip: If the failing expression is known to be legally refer to something that's null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? FTL stack trace ("~" means nesting-related): - Failed at: ${parameters.parseContent?string} [in template "template/ajax/head.ftl" at line 45, column 26] Java stack trace (for programmers): freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...] at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:116) at freemarker.core.UnexpectedTypeException.newDesciptionBuilder(UnexpectedTypeException.java:60) at freemarker.core.UnexpectedTypeException.<init>(UnexpectedTypeException.java:40) at freemarker.core.BuiltInsForMultipleTypes$stringBI._eval(BuiltInsForMultipleTypes.java:617) at freemarker.core.Expression.eval(Expression.java:78) at freemarker.core.Expression.evalAndCoerceToString(Expression.java:82) at freemarker.core.DollarVariable.accept(DollarVariable.java:40) at freemarker.core.Environment.visit(Environment.java:312) at freemarker.core.MixedContent.accept(MixedContent.java:62) at freemarker.core.Environment.visit(Environment.java:312) at freemarker.core.Environment.process(Environment.java:290) at freemarker.template.Template.process(Template.java:312) at org.apache.struts2.components.template.FreemarkerTemplateEngine.renderTemplate(FreemarkerTemplateEngine.java:158) at org.apache.struts2.components.UIBean.mergeTemplate(UIBean.java:584) at org.apache.struts2.components.UIBean.end(UIBean.java:538) at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42) at org.apache.jsp.chapter15.ajaxform_jsp._jspx_meth_s_005fhead_005f0(ajaxform_jsp.java:188) at org.apache.jsp.chapter15.ajaxform_jsp._jspService(ajaxform_jsp.java:123) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2503) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2492) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) ![图片说明](https://img-ask.csdn.net/upload/201601/05/1451982012_346311.png) 有哪个大神遇到过这样的问题么,最后是怎么解决的?
Freemarker错误
<p> </p> <pre name="code" class="java">public class HelloFreeMarker { private Configuration cfg ; public void init() throws Exception { cfg = new Configuration(); cfg.setDirectoryForTemplateLoading(new File("src\\com\\s2freemarker\\exer\\templates")); } public void process() throws Exception{ Map&lt;Object,Object&gt; root = new HashMap&lt;Object,Object&gt;(); root.put("name", "FreeMarker"); root.put("msg", "First example for freemarker ."); Template t = cfg.getTemplate("test.ftl"); t.process(t, new OutputStreamWriter(System.out)); } /** * @param args */ public static void main(String[] args) throws Exception{ HelloFreeMarker hfm = new HelloFreeMarker(); hfm.init(); hfm.process(); } }</pre> <p> </p> <p>模版文件:</p> <p> </p> <pre name="code" class="ftl">${name},hello!${msg}</pre>   <p>错误提示:</p> <p> </p> <pre name="code" class="java">Aug 18, 2011 10:49:25 AM freemarker.log.JDK14LoggerFactory$JDK14Logger error SEVERE: Expression msg is undefined on line 1, column 17 in test.ftl. Expression msg is undefined on line 1, column 17 in test.ftl. The problematic instruction: ---------- ==&gt; ${msg} [on line 1, column 15 in test.ftl] ---------- Java backtrace for programmers: ---------- freemarker.core.InvalidReferenceException: Expression msg is undefined on line 1, column 17 in test.ftl. at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124) at freemarker.core.Expression.getStringValue(Expression.java:118) at freemarker.core.Expression.getStringValue(Expression.java:93) at freemarker.core.DollarVariable.accept(DollarVariable.java:76) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.Environment.process(Environment.java:190) at freemarker.template.Template.process(Template.java:237) at com.s2freemarker.exer.test.HelloFreeMarker.process(HelloFreeMarker.java:30) at com.s2freemarker.exer.test.HelloFreeMarker.main(HelloFreeMarker.java:39) test.ftl,hello! Expression msg is undefined on line 1, column 17 in test.ftl. The problematic instruction: ---------- ==&gt; ${msg} [on line 1, column 15 in test.ftl] ---------- Java backtrace for programmers: ---------- freemarker.core.InvalidReferenceException: Expression msg is undefined on line 1, column 17 in test.ftl. at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124) at freemarker.core.Expression.getStringValue(Expression.java:118) at freemarker.core.Expression.getStringValue(Expression.java:93) at freemarker.core.DollarVariable.accept(DollarVariable.java:76) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.Environment.process(Environment.java:190) at freemarker.template.Template.process(Template.java:237) at com.s2freemarker.exer.test.HelloFreeMarker.process(HelloFreeMarker.java:30) at com.s2freemarker.exer.test.HelloFreeMarker.main(HelloFreeMarker.java:39) Exception in thread "main" Expression msg is undefined on line 1, column 17 in test.ftl. The problematic instruction: ---------- ==&gt; ${msg} [on line 1, column 15 in test.ftl] ---------- Java backtrace for programmers: ---------- freemarker.core.InvalidReferenceException: Expression msg is undefined on line 1, column 17 in test.ftl. at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124) at freemarker.core.Expression.getStringValue(Expression.java:118) at freemarker.core.Expression.getStringValue(Expression.java:93) at freemarker.core.DollarVariable.accept(DollarVariable.java:76) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.Environment.process(Environment.java:190) at freemarker.template.Template.process(Template.java:237) at com.s2freemarker.exer.test.HelloFreeMarker.process(HelloFreeMarker.java:30) at com.s2freemarker.exer.test.HelloFreeMarker.main(HelloFreeMarker.java:39) </pre>
freemark list 遍历出来,from 表单提交的时候如何只获取指定的表单 id?
渣渣给大神先敬个礼。(不知道怎么表达,看看代码吧) 我在代码里面有个表单 <form action="shop_linedetail.action" method="post" > <#list busMediaList as busMedia> <tr> <td> <div class="td_a"> <dl> <input type="hidden" name="busMediaId" value="${busMedia.id!''}"/> 点击提交我想单独获取到这个 id,但是结果总把整个数组的id都给拿了出来。 <dd><span class="line">${busMedia.line!''}</span> <span class="line_level">${busMedia.level!''}</span></dd> <dd><span class="company">${user.comName!''}</span></dd> </dl> </div> </td> <#list busMedia.mediaTypes as mediaType> <td> <div class="td_b"> <dl> <input type="hidden" name="mediaTypeId" value="${mediaType.id!''}"/> <dd><span class="media_info">媒体费:</span><span class="money">&#65509</span><span class="money">${mediaType.mediaFee!''}</span><span class="unit">元/月</span></dd> <dd><span class="production_info">制作费:</span><span class="money">&#65509</span><span class="money">${mediaType.makeCost!''}</span><span class="unit">辆/月</span></dd> </dl> </div> </td> <td> <div class="td_c"> <dl> <#switch "${mediaType.throwDate?length}"> <#case "16"> <dd><span>${mediaType.throwDate[0..8]}</span></dd> <#break> <#case "17"> <dd><span>${mediaType.throwDate[0..9]}</span></dd> <#break> <#case "18"> <dd><span>${mediaType.throwDate[0..10]}</span></dd> <#break> <default> </#switch> <dd><span>类型:${mediaType.name}</span></dd> </dl> </div> </td> </#list> <td> <div class="td_d"> <dl> <dd><input class="operating" type="submit" value="查看详情"><a class="operating">立即购买</a></dd> </dl> </div> </td> </tr> </#list> </form> 后台 就是有个 action类 private String busMediaId = null; syso(busMediaId ); 打印的时候就发现全都遍历出来,而不是我提交的那个表单(一个公交媒体信息)
springboot整合freemarker中,templates下有error.ftl,为什么不能访问
![图片说明](https://img-ask.csdn.net/upload/201911/17/1573985347_223141.png)![图片说明](https://img-ask.csdn.net/upload/201911/17/1573985358_854497.png) 浏览器输入错误地址,给出的是spring的错误页面,没有进入我写的页面 error.ftl.而且输入http://localhost:8080,也没有进入index.ftl.
freemarker遍历集合,根据条件取值,如果没有满足条件的数据,就显示提示语句
<#if items??> <ul class="item-check-list" style="border-radius:0;border-bottom: none;padding-bottom: 0"> <P>单项:</P> <#list items as item> <#if 0==item.isSingle> <li> <label class="checkbox"><input type="checkbox" class="check-item" name = "man" id="check-manItem-${item.id}" value="${item.id}"> ${item.name!?html}</label> </li> </#if> </#list> </ul> <ul class="item-check-list" style="border-radius:0;border-top: none;padding-top: 0"> <P>组合项:</P> <#list items as item> <#if 1==item.isSingle> <li> <label class="checkbox"><input type="checkbox" class="check-item" name = "man" id="check-manItem-${item.id}" value="${item.id}"> ${item.name!?html} </label> </li> </#if> </#list> <span> </span> </ul> <#else> <span>无法加载检测项目信息,请检查公共数据库中心服务配置!</span> </#if> 如果集合没有数据,会有提示语句,但是如果只有单项的数据,而没有组合项的数据,也想要有提示语句“无组合项数据!”。可以实现吗?
如何在freemarker实现把库中查询的类似“2,3,4”字符串转成字符串数组,并判断有没有1,2,3,4这些数字
项目框架:struts2+spring+hiberante+freemarker 对于多选框存入库中为一个String类型字符串,格式如:"2,3,4" <input name="objectForm.programm" type="checkbox" value="1"> ASP <input name="objectForm.programm" type="checkbox" value="2">ASP.NET <input name="objectForm.programm" type="checkbox" value="3">PHP <input name="objectForm.programm" type="checkbox" value="4">JSP 要修改这个提交页面 就需要把这个查询出来的字符变成字符串,for循环成成字符与"1","2","3","4"这几个比较, 如果为true则就选中这个多选框checked="checked" 我的代码出来如下: String sourceStr="1,2,3,4,5"; String[] sourceStrArray=sourceStr.split(","); for(int i=0;i<sourceStrArray.length;i++) { if("1".equals(sourceStrArray[i])){ [color=red]<input name="objectForm.programm" type="checkbox" value="1" checked="checked">[/color] ASP <input name="objectForm.programm" type="checkbox" value="2">ASP.NET <input name="objectForm.programm" type="checkbox" value="3">PHP <input name="objectForm.programm" type="checkbox" value="4">JSP }else if("2".equals(sourceStrArray[i])){ <input name="objectForm.programm" type="checkbox" value="1"> ASP [color=red]<input name="objectForm.programm" type="checkbox" value="2" checked="checked">ASP.NET [/color] <input name="objectForm.programm" type="checkbox" value="3">PHP <input name="objectForm.programm" type="checkbox" value="4">JSP }else if("3".equals(sourceStrArray[i])){ <input name="objectForm.programm" type="checkbox" value="1"> ASP <input name="objectForm.programm" type="checkbox" value="2">ASP.NET [color=red]<input name="objectForm.programm" type="checkbox" value="3" checked="checked">PHP [/color] <input name="objectForm.programm" type="checkbox" value="4">JSP }else{ <input name="objectForm.programm" type="checkbox" value="1"> ASP <input name="objectForm.programm" type="checkbox" value="2">ASP.NET <input name="objectForm.programm" type="checkbox" value="3">PHP [color=red]<input name="objectForm.programm" type="checkbox" value="4" checked="checked">JSP[/color] } } [size=large]想问:如何在freemarker模板上做如上的处理啊。因为从action转到模板的就一个String字符串。[/size][color=red][/color]
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客 [1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
这30个CSS选择器,你必须熟记(上)
关注前端达人,与你共同进步CSS的魅力就是让我们前端工程师像设计师一样进行网页的设计,我们能轻而易举的改变颜色、布局、制作出漂亮的影音效果等等,我们只需要改几行代码,不需...
国产开源API网关项目进入Apache孵化器:APISIX
点击蓝色“程序猿DD”关注我回复“资源”获取独家整理的学习资料!近日,又有一个开源项目加入了这个Java开源界大名鼎鼎的Apache基金会,开始进行孵化器。项目名称:AP...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
编写Spring MVC控制器的14个技巧
本期目录 1.使用@Controller构造型 2.实现控制器接口 3.扩展AbstractController类 4.为处理程序方法指定URL映射 5.为处理程序方法指定HTTP请求方法 6.将请求参数映射到处理程序方法 7.返回模型和视图 8.将对象放入模型 9.处理程序方法中的重定向 10.处理表格提交和表格验证 11.处理文件上传 12.在控制器中自动装配业务类 ...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
求小姐姐抠图竟遭白眼?痛定思痛,我决定用 Python 自力更生!
点击蓝色“Python空间”关注我丫加个“星标”,每天一起快乐的学习大家好,我是 Rocky0429,一个刚恰完午饭,正在用刷网页浪费生命的蒟蒻...一堆堆无聊八卦信息的网页内容慢慢使我的双眼模糊,一个哈欠打出了三斤老泪,就在此时我看到了一张图片:是谁!是谁把我女朋友的照片放出来的!awsl!太好看了叭...等等,那个背景上的一堆鬼画符是什么鬼?!真是看不下去!叔叔婶婶能忍,隔壁老王的三姨妈的四表...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
相关热词 c# clr dll c# 如何orm c# 固定大小的字符数组 c#框架设计 c# 删除数据库 c# 中文文字 图片转 c# 成员属性 接口 c#如何将程序封装 16进制负数转换 c# c#练手项目
立即提问