在某些MVC框架中,如果您希望执行某些代码并呈现某些部分视图,则可以从视图中调用控制器操作.我不确定在Spring MVC中执行它的正确方法是什么
我想要一组JSP模板.其中一些将是页面布局,其中一些将是小组件,如分页器,登录框,菜单,标签云等等.这些组件中的每一个都需要一些bean或控制器操作来将一些数据设置到ViewAndModel中,以便视图可以使用它.
问题是我不想在每次调用中设置所有这些对象.我的注册管理员只关心注册处理.所以现在我该怎么做呢?如何从视图中调用DI bean或控制器以准备部分视图?或者我应该创建一些映射?或者我是从完全错误的角度来解决问题的?
目前我需要spring bean的jsp 2.0标签使用此代码:
ac = WebApplicationContextUtils.getWebApplicationContext( servletContext);
ac.getBeansOfType(MyRequestedClass.class);
Run Code Online (Sandbox Code Playgroud)
我刚刚得到第一个匹配的bean.
这段代码运行正常,但是有一个不希望出现的缺点,我花了大约一半的页面渲染时间来查找spring bean,因为每次调用一个标签时都会发生这种情况.我想也许可以将bean放入应用程序范围或至少是会话范围.但是,处理这个问题的最聪明方法是什么?
关于如何完成这项任务有很多文件,但我仍然无法解决我的问题.我刚接触servlet,所以我可能错过了一些东西.
我使用red5使用tomcat 6来创建一个servlet,它使用一个用于数据库操作的MysqlDb类的spring bean.
当我使用端口5080指向red5时,它充当常规的tomcat服务器,我可以浏览jsp和servlet页面.
我的web.xml包含以下相关信息:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>fbauth</servlet-name>
<servlet-class>com.xpogames.FbAuth</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>fbauth</servlet-name>
<url-pattern>/fbauth</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
我的applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="/WEB-INF/red5-web.properties" />
</bean>
<bean id="idDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName"><value>${db.driver}</value></property>
<property name="url"><value>${db.url}</value></property>
<property name="username"><value>${db.username}</value></property>
<property name="password"><value>${db.password}</value></property>
<property name="poolPreparedStatements"><value>true</value></property>
<property name="maxActive"><value>10</value></property>
<property name="maxIdle"><value>10</value></property>
</bean>
<bean id="MysqlDb" class="com.xpogames.MysqlDb">
<property name="idDataSource" ref="idDataSource"/>
</bean>
</beans>
Run Code Online (Sandbox Code Playgroud)
我的FbAuth servlet:
package com.xpogames;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.BeanFactory;
import …Run Code Online (Sandbox Code Playgroud) (我不熟悉与HTML交付相关的技术,比如JSP ...但我知道基本概念......)
在我的应用程序中,我使用Spring Beans和Spring Security以及Blaze DS通过AMF协议与Flex应用程序进行通信.一切正常.
现在我有一项任务是通过HTTP/HTML提供一些服务,例如.它应该是某种为用户生成HTML的servlet或JSP页面.为了不重现所有业务和数据访问逻辑,我想利用我现有的Spring Beans(我喜欢Spring.).所以,基本上我想为我的Spring Beans创建HTML视图.
我的问题:最好的方法是什么?我应该使用哪些技术?大师们会建议什么?
最好的提示是一个小教程的链接,它将解释如何访问JSP页面的Spring Beans.我试图搞砸自己,但是有太多的信息,我有点不同版本 - 所以我真的不知道我应该从什么开始......