使用SpringMVC和Java的动态MVC控制器
我正在使用Java1.8和SpringMVC(最新版本),我有一个无法解决的问题。我有一个以CMS为动力的网站,它的内容通过存储在couchbase存储库中的JSON发送到web应用程序。每个文档代表一个页面,文档的键是页面的URL。所以我要做的是从请求中获取URL,可以是HTML或JSP或其他任何内容,所有请求都通过一个动态控制器获取,该控制器将通过根据URL键查找文档来解析URL 我有一个单独的页面通过一个动态控制器,但由于某些原因,没有其他任何页面可以通过,我无法理解它。我从tomcat那里得到的只是404。有人能提供一些帮助吗。在.NETMVC中,我可以很容易地完成同样的事情,但在Java和SpringMVC中,这似乎并不简单 非常感谢您的任何帮助或建议使用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那
谢谢,我设法解决了这个问题,我已经为任何使用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
*沃夫先生
我希望这对以后的其他人有所帮助。您能发布控制器代码吗?