如何配置spring mvc / jsp来输出xhtml而不是html?

时间:2011-04-25 17:36:47

标签: java html xhtml spring-mvc

我开始尝试使用Spring MVC,并注意到我的jsps是作为html文件提供的。例如。

<html>
<head>
...

</html>

如何配置Spring MVC来代替xhtml文件?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
...
</html>

注意 - SpringMVC在我的jsp前面加上<html>标记,因此在此之前我没有任何空间来添加doctype。

3 个答案:

答案 0 :(得分:1)

更改您的JSP。对于服务器,所有HTML都只是文本。 但要注意,您需要更改多于doctype。您还必须检查它们符合新标准的JSP(以及包含的文件等)。例如结束标签,小写标签和属性名称。

答案 1 :(得分:0)

这个没有快速解决方法,基本上你必须重写你的jsps以符合html并添加适当的DOCTYPE。

您可以使用JSP生成几乎任何类型的文本文件。如果您正在制作CSV,XHTML,Quirks模式HTML或其他任何内容,JSP本身并不关心。

现在,如果您使用JSPX,那么这些文件必须是有效的xml。

答案 2 :(得分:0)

以下是web.xml中的web流量输入,jsf和xhtml显示:

    <bean id="jpaFlowExecutionListener" class="org.springframework.webflow.persistence.JpaFlowExecutionListener">
            <constructor-arg ref="entityManagerFactory" />
            <constructor-arg ref="transactionManager" />
    </bean>

<bean id="facesContextListener" class="org.springframework.faces.webflow.FlowFacesContextLifecycleListener" />

<webflow:flow-executor id="flowExecutor">
    <webflow:flow-execution-listeners>
        <webflow:listener ref="jpaFlowExecutionListener"/>
        <webflow:listener ref="facesContextListener"/>
    </webflow:flow-execution-listeners>
</webflow:flow-executor>

<webflow:flow-registry id="flowRegistry" flow-builder-services="facesFlowBuilderServices" base-path="/WEB-INF/flows">
    <webflow:flow-location-pattern value="/**/*-flow.xml"/> 
</webflow:flow-registry>

<faces:flow-builder-services id="facesFlowBuilderServices" development="true" />

<faces:resources/>

<bean class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">
    <property name="order" value="1"/>
    <property name="flowRegistry" ref="flowRegistry"/>
    <property name="defaultHandler">
         <bean class="org.springframework.web.servlet.mvc.UrlFilenameViewController" />
    </property> 
</bean>

<bean class="org.springframework.faces.webflow.JsfFlowHandlerAdapter">
    <property name="flowExecutor" ref="flowExecutor" />
</bean>

<bean id="faceletsViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass" value="org.springframework.faces.mvc.JsfView"/>
    <property name ="prefix" value="/WEB-INF/" />
    <property name="suffix" value=".xhtml" />
</bean>

<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>