Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.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

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
使用SpringMVC和Java的动态MVC控制器_Java_Spring_Spring Mvc - Fatal编程技术网

使用SpringMVC和Java的动态MVC控制器

使用SpringMVC和Java的动态MVC控制器,java,spring,spring-mvc,Java,Spring,Spring Mvc,我正在使用Java1.8和SpringMVC(最新版本),我有一个无法解决的问题。我有一个以CMS为动力的网站,它的内容通过存储在couchbase存储库中的JSON发送到web应用程序。每个文档代表一个页面,文档的键是页面的URL。所以我要做的是从请求中获取URL,可以是HTML或JSP或其他任何内容,所有请求都通过一个动态控制器获取,该控制器将通过根据URL键查找文档来解析URL 我有一个单独的页面通过一个动态控制器,但由于某些原因,没有其他任何页面可以通过,我无法理解它。我从tomcat那

我正在使用Java1.8和SpringMVC(最新版本),我有一个无法解决的问题。我有一个以CMS为动力的网站,它的内容通过存储在couchbase存储库中的JSON发送到web应用程序。每个文档代表一个页面,文档的键是页面的URL。所以我要做的是从请求中获取URL,可以是HTML或JSP或其他任何内容,所有请求都通过一个动态控制器获取,该控制器将通过根据URL键查找文档来解析URL

我有一个单独的页面通过一个动态控制器,但由于某些原因,没有其他任何页面可以通过,我无法理解它。我从tomcat那里得到的只是404。有人能提供一些帮助吗。在.NETMVC中,我可以很容易地完成同样的事情,但在Java和SpringMVC中,这似乎并不简单

非常感谢您的任何帮助或建议


谢谢,

我设法解决了这个问题,我已经为任何使用CMS驱动的网站遇到这个问题的人发布了我的示例代码

控制器代码

@Controller
public class PageController {

    @Autowired
    private ViewResolver viewResolver;

    @RequestMapping(value="**", method = RequestMethod.GET)
    public ModelAndView page() throws Exception {

        PageRepository repo = new PageRepository();

        String url = getUrl();
        Page page = repo.GetPageByID(url.toLowerCase());
        if (page == null)
        {
            throw new ResourceNotFoundException();
        }
        else
        {
            config conf = new config();
            page.setViewResolver(viewResolver);
            ModelAndView mav = new ModelAndView(conf.PageViewPath() + page.getPageTemplate());
            mav.addObject("page", page);
            return mav;
        }
    }
}
配置我的MVC Dispatcher Servlet

<context:component-scan base-package="com.fsdynamic.*" />

    <mvc:annotation-driven/>
    <mvc:default-servlet-handler default-servlet-name="mvc-dispatcher"/>
    <mvc:resources mapping="/resources/**" location="/resources/"/>

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix">
            <value>/WEB-INF/views/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>

/WEB-INF/views/
.jsp
my Web.xml的配置

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <context-param>
    <param-name>contextConfiguration</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
    <url-pattern>*.js</url-pattern>
    <url-pattern>*.eot</url-pattern>
    <url-pattern>*.svg</url-pattern>
    <url-pattern>*.ttf</url-pattern>
    <url-pattern>*.woff</url-pattern>
  </servlet-mapping>
</web-app>

Web应用程序创建的原型
上下文配置
/WEB-INF/applicationContext.xml
org.springframework.web.context.ContextLoaderListener
mvc调度器
org.springframework.web.servlet.DispatcherServlet
1.
mvc调度器
/
违约
*.css
*.js
*.eot
*.svg
*.ttf
*沃夫先生

我希望这对以后的其他人有所帮助。

您能发布控制器代码吗?