大家好,我在做springMVC 代替了struts ,使用注解进行了action
的配置,并且把所有的jsp页面都放到了WEb-INF目录下,导致了无法直接访问jsp页面的问题。然后我的action类当多出来了很多没有用的action,如下:
/**
* 跳转到模块管理页面
* spring转发到模块管理页面
* @return
* @see [类、类#方法、类#成员]
*/
@RequestMapping(value = "module/qryModuleList", method = RequestMethod.GET)
public String qryModuleList()
{
return "module/module";
}
就是去找module.jsp 但是这个方法好多余呀。 请问 有没有更好的办法?请指教,小弟刚刚开始用springmvc新手。 springjspstrutsaction
的配置,并且把所有的jsp页面都放到了WEb-INF目录下,导致了无法直接访问jsp页面的问题。然后我的action类当多出来了很多没有用的action,如下:
/**
* 跳转到模块管理页面
* spring转发到模块管理页面
* @return
* @see [类、类#方法、类#成员]
*/
@RequestMapping(value = "module/qryModuleList", method = RequestMethod.GET)
public String qryModuleList()
{
return "module/module";
}
就是去找module.jsp 但是这个方法好多余呀。 请问 有没有更好的办法?请指教,小弟刚刚开始用springmvc新手。 springjspstrutsaction
个人感觉放到WebRoot下面或者自己创建一些目录更合适一些。
spring突然感觉我自己学的也好差。以后也得重新开始学了。
@RequestMapping(value = "{id}", method = RequestMethod.GET)
public String getWelcomeView(@PathVariable String id,
HttpServletRequest request)
{
request.setAttribute("selectpath", id);
return id;
}这样你要请求a页面, 就访问a.(你mvc的后缀),就会转到a.jsp,
这就是根据你路径来返回
public class BaseContoller{
public static final String COMMON_FAIL_PAGE = "fail_page";
public static final String COMMON_FAIL_ALERT = "fail_message";
public static final String USER_SESSION_KEY = "user_session"; // 处理JSP页面的直接访问
@RequestMapping("/{jsp}.do")
public String jsp(@PathVariable(value = "jsp") String jspStr) { return jspStr;
}
}之后让所有的Contoller类继承他就能直接访问jsp了
错误如下
严重: StandardWrapper.Throwable
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0': Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping found. Cannot map 'moduleAction' bean method
public java.lang.String net.huatech.framework.core.ActionFilter.jsp(java.lang.String)
to {[/{jsp}.htm],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}: There is already 'menuAction' bean method
public java.lang.String net.huatech.framework.core.ActionFilter.jsp(java.lang.String) mapped.
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
<filter-name>encodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/springmvc-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>runInit</servlet-name>
<!-- 初始化 -->
<servlet-class>cn.com.newdt.travelitinerary.core.AutoInitServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping> <!-- 出错页面定义 -->
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/error/500.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/500.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error/404.jsp</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/error/403.jsp</location>
</error-page> <welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd"
default-autowire="byName">
<!-- 事务 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean> <!-- 数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="admin" /> <!-- 连接池启动时的初始值 -->
<property name="initialSize" value="1" /> <!-- 连接池的最大值 -->
<property name="maxActive" value="300" /> <!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
<property name="maxIdle" value="2" /> <!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
<property name="minIdle" value="1" />
</bean> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean> <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<bean
class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<!-- 解决JOSN字符串乱码问题 -->
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- JSON对象注解 -->
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
</list>
</property>
</bean>
<!-- 自动扫描controller bean,把作了注解的类转换为bean -->
<context:component-scan base-package="cn.com.newdt.travelitinerary" />
<context:component-scan base-package="cn.com.newdt.rtms" />
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<!-- bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /--> <!-- 拦截器,检验用户是否登陆等 -->
<bean id="authorizeInterceptor" class="cn.com.newdt.travelitinerary.core.AuthorizeInteceptor" /> <bean id="handlerMapping"
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<ref bean="authorizeInterceptor" />
</list>
</property>
</bean> <!-- 对模型视图名称的解析,在请求时模型视图名称添加前后缀 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
<property name="order" value="0" />
</bean> <!-- 总错误处理-->
<bean id="exceptionResolver"
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="defaultErrorView" value="/error/error" />
<property name="defaultStatusCode" value="500" />
<property name="warnLogCategory"
value="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" />
</bean> <!-- 国际化 -->
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>i18n/messages</value>
</list>
</property>
<property name="useCodeAsDefaultMessage" value="true" />
</bean>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />
<!-- 国际化 end-->
</beans>
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>