如何将Spring Service自动接线到JSP中?

如标题中所述,我需要在page.jsp中自动连接服务。“ 我不建议这样做

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"

pageEncoding="ISO-8859-1"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<%@ page import="org.springframework.context.ApplicationContext"%>

<%@ page

import="org.springframework.web.servlet.support.RequestContextUtils"%>

<%@ page import="com.fussa.fyby.service.Test"%>

<%@ page import="com.fussa.fyby.model.PIL_P_APPLCTN"%>

<%

ApplicationContext ac = RequestContextUtils.getWebApplicationContext(request);

Test s = (Test) ac.getBean("fussafyby");

PIL_P_APPLCTN app = s.getByKey(13);

%>

<c:out value="azeerty"></c:out>

<c:out value="${ app.APPLCTN_CD }"></c:out>

<select name="listeGroupes" id="listeGroupes">

<option value="123">123</option>

<option value="${ app.APPLCTN_CD }">${ app.APPLCTN_CD }</option>

<option value="123">${ s.afficher() }</option>

</select>

我的服务:

@Component("fussafyby")

@Transactional

public class Test {

@Autowired

private SessionFactory sessionFactory;

protected Session getSession() {

return sessionFactory.getCurrentSession();

}

public PIL_P_APPLCTN getByKey(int key) {

return (PIL_P_APPLCTN) getSession().get(PIL_P_APPLCTN.class, key);

}

public String affiche() {

return "FuSsA";

}

}

选择中仅显示 azeerty 消息和 123 选项。

感谢您的任何建议。

回答:

您甚至不应该尝试这样做。…JSP被servlet容器转换为java源代码并编译为java类,并且Java

EE规范没有说明它们的去向,因此您无法进行spring扫描,因此注释是别无选择

更糟糕的是,JSP不能是Spring bean,因为它们是由应用程序上下文外部的servlet容器创建的,因此XML注入也不起作用。

甚至无法使用完整的AspectJ,因为您再也无法控制JSP类的位置,因此甚至无法在它们上使用加载时织布器。

问题不在于 “不建议这样做”

,而在于JSP是由servlet容器管理的特殊类。您可以在scriplet中使用Java代码,但不能将它们作为普通Java类进行管理。

顺便说一句,更笼统地说,您不认为没有充分的理由不建议在scriptlet中推荐太多Java代码吗?

以上是 如何将Spring Service自动接线到JSP中? 的全部内容, 来源链接: utcz.com/qa/398684.html

回到顶部