我正在研究Spring MVC Application。根据要求,我有35个类别,所有类别页面将具有相同的结构,但不同的颜色和图像不同,所有这些都被调用不同的网址。
例如:
cat1.html https://drive.google.com/file/d/0BzYl1Amc-L0YR0RrXy05cWFmSFE/view?usp=sharing
cat2.html https://drive.google.com/file/d/0BzYl1Amc-L0YZnh2b2ZpT19md2c/view?usp=sharing
My Mam建议为所有类别创建不同的JSP文件。但我觉得用单个JSP文件动态渲染它会更好。
我们可以这样做吗?
我尝试使用rest request /{cat}.html并将其匹配以加载不同的CSS&像这样的模型的图像文件,但没有工作。
@Controller
public class ViewController {
List<UI> uiList = new ArrayList<UI>();
@RequestMapping(value = "/{cat}.html", method = RequestMethod.GET)
public String article(@PathVariable("cat") String cat, ModelMap model,
HttpServletRequest request) {
UI cat1 = new UI();
cat1.setId(1);
cat1.setCatCssFile("app-cat1.css");
cat1.setCalendarImage("pic1.png");
cat1.setCat("cat1");
uiList.add(cat1);
UI cat2 = new UI();
cat2.setId(2);
cat2.setCatCssFile("app-cat2.css");
cat2.setCat("cat2");
cat2.setCalendarImage("pic2.png");
uiList.add(cat2);
for (UI ui : uiList) {
if (ui.getCat().equals(cat)) {
model.addAttribute("ui", ui);
}
}
return "article";
}
答案 0 :(得分:0)
我认为你接近最好的解决方案,我会做这样的事情:
@RequestMapping(value = "/{cat}.html", method = RequestMethod.GET)
public String article(@PathVariable("cat") String cat, ModelMap model,
HttpServletRequest request) {
//code
model.addAttribute("cat", cat);
return "article"
}
在您的HTML文件中(我使用来自百里香的表示法,您应该使用JSP选项来呈现控制器变量)
<link rel="stylesheet" th:href="@{'/app/css/' + ${cat} + '.css'}" type="text/css"/>