Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Spring加载直接访问JSP页面?_Java_Spring_Jsp_Spring Mvc - Fatal编程技术网

Java 如何使用Spring加载直接访问JSP页面?

Java 如何使用Spring加载直接访问JSP页面?,java,spring,jsp,spring-mvc,Java,Spring,Jsp,Spring Mvc,我想知道如何直接访问WEB-INF目录下的JSP页面,Spring在/路径上运行,而无需编写任何用于视图转发的控制器 例如,我有一个项目myapp,结构如下: src WebRoot `-- WEB-INF |-- public | `-- example.jsp |-- views 现在,我想通过直接导航到example.jsp来访问example.jsphttp://localhost/myapp/public/example无需实施任何控制器 到目前为止,我所

我想知道如何直接访问
WEB-INF
目录下的JSP页面,Spring在
/
路径上运行,而无需编写任何用于视图转发的控制器

例如,我有一个项目
myapp
,结构如下:

src
WebRoot
`-- WEB-INF
    |-- public
    |   `-- example.jsp
    |-- views
现在,我想通过直接导航到
example.jsp来访问
example.jsp
http://localhost/myapp/public/example
无需实施任何控制器

到目前为止,我所尝试的:

  • 添加到我的上下文xml中,但它就是不起作用,容器不断抱怨
    HTTP 404-PAGE NOT FOUND/public/example.jsp

  • 在我的上下文xml中添加了一个内部资源视图解析器

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix">
            <value>/WEB-INF/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>
    
    
    /WEB-INF/
    .jsp
    
    但我不确定下一步该做什么,我可能会将许多JSP页面放在
    /WEB-INF/public
    下,因此为每个页面编写一个控制器将是一件乏味的事情


  • 有什么标准的方法可以做到这一点吗?请帮忙

    在dispatcher servlet中尝试类似的操作:

    <bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          p:prefix="/WEB-INF/jsp/"
          p:suffix=".jsp" />
    
    
    

    其中jsp文件夹包含您的jsp文件。从控制器可以直接使用jsp名称。您无需提及符合上述定义的jsp文件夹。

    Spring mvc我们有一个选项


    当您在浏览器中键入/时,这会重定向example.jsp页面

    我想直接从浏览器访问jsp页面,而不实现任何控制器,上面的操作会起作用吗?您已经标记了spring mvc,其中“c”代表控制器。。。您应该使用controller进行请求映射并加载JSP。如果只有一个自包含的JSP页面,我希望用户直接访问该页面,就像访问静态资源的方式一样,我该怎么做?您想这样做:我是对的吗?@T.Jung问题已更新。您甚至不应该尝试这样做。如果需要直接访问JSP,则应将其存储在WEB-INF之外。JSP不是静态资源。它由servlet容器编译成servlet,编译后的代码由servlet容器调用。@SergeBallesta你说得很好,但我只是好奇。它解决了我的问题,尽管如此,视图名称应该是
    public/example
    @JerryChin:
    行确实声明了一个控制器来服务视图…@SergeBallesta,但在我的例子中,这是解决问题的最简单方法。你不这么认为吗?@JerryChin:当然是,这是SpringMVC的方式!我误解了您的需求,认为您实际上希望直接为JSP提供服务,而不需要任何控制器。这里有一个,但它完全由Spring提供,所以您不必自己实现它。