我正在研究一个项目,我们使用freemarker作为模板语言.我没有使用defualt登录表单,而是创建了一个自定义控制器和一个与该控制器一起使用的自定义freemarker视图
码:
@Controller
public class LoginController {
private static finaal String LOGIN = "components/security/login";
@RequestMapping("/security/login")
public String login(){
return LOGIN;
}
}
Run Code Online (Sandbox Code Playgroud)
我的freemarker模板:
HTML代码:
<form action="${rc.contextPath}/j_spring_security_check" method="post">
<label for="username">Username</label><input type="text" id="username" name="j_username"><br/>
<label for="password">Password</label><input type="text" id="password" name="j_password"><br/>
<input type="submit" value="Login!">
</form>
Run Code Online (Sandbox Code Playgroud)
我的applicationContext-security.xml
<http>
<logout/>
<intercept-url pattern="/*" access="ROLE_ADMIN, ROLE_GUEST"/>
<intercept-url pattern="/security/login" filters="none"/>
<form-login login-page="/security/login" />
</http>
Run Code Online (Sandbox Code Playgroud)
登录就像一个魅力但是,当用户输入错误的用户名或密码时,没有显示错误消息,我无法弄清楚如何做到这一点.你能帮我解决吗?
我需要将javascript函数的值添加到freemarker列表中
示例:我从我的控制器传递给视图一个对象schoolObject.schoolObject有一个名为classNames的List属性
是否适用于从javascript中为此列表添加值!
以下不起作用:
function addclass(className){
var name=document.getElementById(smth).value.trim();
document.getElementById(classNames).value=name
alert(document.getElementById(classNames).value);
}
Run Code Online (Sandbox Code Playgroud) 假设我有一个 freemarker 宏:
<#macro helloObject>
World
</#macro>
Run Code Online (Sandbox Code Playgroud)
在某些情况下,我可以轻松调用它:
Hello, <@helloObject/>!
Run Code Online (Sandbox Code Playgroud)
但是插入它的语法是什么,例如,如果它是字符串的一部分?
<#assign greeting="Hello, <@helloObject>!" /> <#-- doesn't work -->
<#assign greeting="Hello, ${helloObject}!" /> <#-- doesn't work -->
<#assign greeting="Hello, ${@helloObject}!" /> <#-- doesn't work -->
<#assign greeting="Hello, ${<@helloObject/>}!" /> <#-- doesn't work -->
<#assign greeting="Hello, @helloObject!" /> <#-- doesn't work -->
${greeting}
Run Code Online (Sandbox Code Playgroud) template-engine freemarker templating templating-engine string-interpolation
我使用 freemarker 模板,并且在下面的 ftl 文件中给出了代码。
<#if (actionErrors?exists && actionErrors?size > 0)>
<ul>
<#list actionErrors as error>
<li><span<#rt/>
<#if parameters.cssClass?exists>
class="${parameters.cssClass?html}"<#rt/>
</#if>
<#if parameters.cssStyle?exists>
style="${parameters.cssStyle?html}"<#rt/>
</#if>
>${error}</span></li>
</#list>
</ul>
</#if>
Run Code Online (Sandbox Code Playgroud)
上面的代码给出了以下错误。
freemarker.core.InvalidReferenceException:第 33 行的表达式错误未定义
我用 <#if error.value??> 包裹 ${error} 并再次尝试。但它仍然给出了同样的问题。然后我使用了此处提到的 ${error.value!'N/A'} 。仍然没有解决问题。请在这件事上给予我帮助。
先感谢您。
谢谢。
您好我有这样的模板:
......
<body onload='setInterval(function(){refresh()}, ${refreshPeriod} ); setClientTime();'>
<p>UserId: ${userId}</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当我生成我的模板并将userId像4195578878989842599它一样显示时4 195 578 878 989 842 599,是否可以修复它?
是否有可能在freemarker中写这个.
<input type="checkbox" value="Available ?" checked="<#if ${status}=='Available'>true<#else>false</#if>"/>
Run Code Online (Sandbox Code Playgroud)
现在它抛出异常
如果status属性等于,我想要检查html复选框"Available".
如何在freemarker中执行此操作?
我有一个正在迭代的列表,但我想使用自己的计数器。我尝试了几次不成功的尝试来实现我自己的计数器。内置函数将不起作用,因为某些记录会被即时从列表中过滤掉,但我只想计算未过滤的记录。我尝试为变量赋值并递增,但似乎总是重复该值。
示例代码
<#list recordList as record>
<#assign count>${record_index + 1 }</#assign>
<#if record.isNotExcluded()>
<#lt> Record ${count}
</#if>
</#list>
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,如果我有 5 条记录并且第三条记录被排除,那么它会抛出编号。
我如何使用 angularjs 访问 freemarker 中的值。我在 freemarker 中有一个这样的地图,其中有 bean 。我如何在 Angular js 中使用它?
前任:<#list dataMap["TRIGGER-JOBS"]["RE3"]["statusKey"] as espBean>
如何dataMap使用 Angular JS 获取其中的值?或者有没有办法我可以只使用 Angular js而不是 freemarker.if 那么怎么样?我是 Angular JS 的新手,请指导我。
提前致谢。
如果定义了foobar,这似乎显示“ Hello world”
<#if foobar??>
Hello world
</#if>
Run Code Online (Sandbox Code Playgroud)
如果foobar是布尔值,如果foobar都已定义且为true,我该如何使用Hello World来编写?
我的请求可以进入我的Welcomecontroller的方法,但似乎该方法无法返回freemarker页面给我或者spring boot没有区分freemarker(我已将.ftl文件放入/resources/templates/)
当我输入网址http://localhost:8080/index时
我从 chrome 中得到了这个,并且在 IDEA 的控制台中没有报告任何错误:
Whitelabel 错误页面 此应用程序没有 /error 的显式映射,因此您将其视为后备。
2020 年 1 月 4 日星期六 22:52:53 CST 出现意外错误(类型=未找到,状态=404)。没有可用的消息
我的代码如下:
@Controller
public class WelcomeController {
@Value("${application.message}")
private String message;
@GetMapping("/index")
public String welcome(Map<String, Object> model) {
model.put("time", new Date());
model.put("message", this.message);
return "welcome";
}
}
Run Code Online (Sandbox Code Playgroud)
@SpringBootApplication
public class QuestionsiteApplication {
public static void main(String[] args) {
SpringApplication.run(QuestionsiteApplication.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
欢迎.ftl:
<!DOCTYPE html>
<html lang="en">
<body>
Date: ${time?date}
<br>
Time: ${time?time}
<br>
Message: ${message}
</body>
</html> …Run Code Online (Sandbox Code Playgroud) 我需要修改给定 FreeMarker 中位置的数组元素。
var arr = [];
arr[0] = "Jani";
arr[1] = "Hege";
arr[2] = "Stale";
arr[3] = "Kai Jim";
arr[4] = "Borge";
Run Code Online (Sandbox Code Playgroud)
可以在 freemarker 中做到这一点,你可以教我一个例子
<#macro cuenta d >
<#assign posicion=0>
<#assign arregloCuenta=[]>
<#list args.array?split(",") as value>
<#assign posicion=posicion+1>
<#if d.properties["bchile:tipodoc"]?exists >
<#if d.properties["bchile:tipodoc"] == value>
<#assign arregloCuenta=["juan"]>
<#assign arregloCuenta= arregloCuenta + ["felipe"]> ${args.array[0]} ${posicion} ${arregloCuenta[1]} </#if> </#if> </#list> </#macro>
Run Code Online (Sandbox Code Playgroud) freemarker ×11
java ×5
javascript ×2
spring ×2
angularjs ×1
arrays ×1
spring-boot ×1
templating ×1
tomcat ×1