如何使用 spring mvc 将 Html 文件转换为 .vm(速度模板)文件
How to Convert Html files into .vm(velocity template) files using spring mvc
需要使用 spring 将 .html 中的 UI 页面转换为 .vm(速度模板)文件 mvc.I 尝试在其他网站上搜索但没有找到任何好的信息。
任何有用的 site/help 将不胜感激。
谢谢
你问题中的这个 html 到 .vm 的转换似乎有点误导,因为它可能是 - .vm(velocity template), .jsp , .ftl(freemarker template) ,等,在前端渲染时它只是 html。
我相信,您想知道如何配置 spring mvc 以使用 velocity 作为视图层。
为此,您需要将视图解析器配置为 VelocityViewResolver。
转到您的 'mvc-dispatcher-servlet.xml' 或“-servlet.xml”,它默认包含用于 jsp 文件的 spring 的 InternalResourceViewResolver 配置。
您需要像这样添加特定于速度的配置:
<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="cache" value="true"/>
<property name="prefix" value=""/>
<property name="suffix" value=".vm"/>
</bean>
这个link可能会有很好的帮助。
首先,您需要清楚的是,当您使用 MVC 时,您可以以任何您想要的方式提供页面。这是您的问题的一种可能解决方案,它是我自己的应用程序中的实际代码。
您可能希望像这样处理 *.html 请求。
web.xml
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
PATH/TO/YOUR/SERVLET-CONTEXT.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
然后在你的servlet-context.xml中,你可以像这样配置VelocityViewResolver
。
<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="cache" value="true"/>
<property name="prefix" value="PATH/TO/YOUR/VIEWS/FOLDER"/>
<property name="suffix" value=".vm"/>
</bean>
然后从您的控制器中,return您要呈现的视图的名称,这不应包括扩展名。
return "template"; //Return the name of view to be found in the views folder.
//The template.vm should be present in your views folder.
这将解决您的问题。
请注意,在 MVC 中,视图是根据您的请求类型 return 编辑的,不会发生 file-types 的实际转换 .
需要使用 spring 将 .html 中的 UI 页面转换为 .vm(速度模板)文件 mvc.I 尝试在其他网站上搜索但没有找到任何好的信息。
任何有用的 site/help 将不胜感激。 谢谢
你问题中的这个 html 到 .vm 的转换似乎有点误导,因为它可能是 - .vm(velocity template), .jsp , .ftl(freemarker template) ,等,在前端渲染时它只是 html。
我相信,您想知道如何配置 spring mvc 以使用 velocity 作为视图层。
为此,您需要将视图解析器配置为 VelocityViewResolver。
转到您的 'mvc-dispatcher-servlet.xml' 或“-servlet.xml”,它默认包含用于 jsp 文件的 spring 的 InternalResourceViewResolver 配置。 您需要像这样添加特定于速度的配置:
<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="cache" value="true"/>
<property name="prefix" value=""/>
<property name="suffix" value=".vm"/>
</bean>
这个link可能会有很好的帮助。
首先,您需要清楚的是,当您使用 MVC 时,您可以以任何您想要的方式提供页面。这是您的问题的一种可能解决方案,它是我自己的应用程序中的实际代码。
您可能希望像这样处理 *.html 请求。
web.xml
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
PATH/TO/YOUR/SERVLET-CONTEXT.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
然后在你的servlet-context.xml中,你可以像这样配置VelocityViewResolver
。
<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="cache" value="true"/>
<property name="prefix" value="PATH/TO/YOUR/VIEWS/FOLDER"/>
<property name="suffix" value=".vm"/>
</bean>
然后从您的控制器中,return您要呈现的视图的名称,这不应包括扩展名。
return "template"; //Return the name of view to be found in the views folder.
//The template.vm should be present in your views folder.
这将解决您的问题。
请注意,在 MVC 中,视图是根据您的请求类型 return 编辑的,不会发生 file-types 的实际转换 .