如何渲染不同CSS和图像的jsp文件spring mvc

时间:2017-04-26 10:00:45

标签: java spring jsp spring-mvc

我正在研究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";
}

1 个答案:

答案 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"/>