Thymeleaf& Spring MVC电流控制器&行动

时间:2016-01-14 13:01:03

标签: spring spring-mvc spring-boot thymeleaf

我的一个百里叶模板中有一些导航。

$agent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
$url="http://www.aliexpress.com/item/2014-Winter-Carters-Newborn-Clothes-Baby-Boy-Polar-Fleece-Fabric-Romper-Long-sleeve-Baby-Costume-Baby/32255697345.html?spm=2114.031010208.3.1.uspHz6&ws_ab_test=searchweb201556_3,searchweb201644_4_10001_10002_10005_301_10006_10003_10004_62_61,searchweb201560_8,searchweb1451318400_6149";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
$html=curl_exec($ch);
curl_close($ch);

我想要做的是设置我们所在的当前导航项的活动类。来自grails世界,我们可以轻松地做到这一点,因为GSP中有两个非常重要的变量。

<li class="active"><a th:href="@{/}">Home</a></li>
<li class=""><a th:href="@{/about}">About</a></li>
<li class=""><a th:href="@{/contact}">Contact</a></li>

现在我知道我可以在我的Spring MVC控制器中手动设置这些变量并将它们传递给视图,但这似乎不是一个好的解决方案。

${controllerName}
${actionName}

还有其他办法吗?

1 个答案:

答案 0 :(得分:0)

我使用页面模板本身设置的变量写出了不同的解决方案。

见这里:Is it possible to pass parameters to layout in thymeleaf layout-dialect?

我的home.html文件将等同于您的about/home模板。我设置了一个变量(currentPage),使其可用于所有其他包含。

它仍然是一种手动方法,如我的fragments/header.html文件中所示,但至少所有逻辑都保留在模板端。

你可以争论这个,因为控制器决定每个页面使用哪个模板。但这是一个简单的解决方案,您无需继续将此数据添加到模型中,只是为了跟踪要突出显示的导航元素。