我是ejb的新手。其實我已經創建了一個ejb,並且添加了一個可以簡單調用會話bean的Web應用程序的引用。如何從jsp文件調用會話bean?如何從jsp調用會話bean
4
A
回答
4
我也可以更喜歡你爲你的應用程序使用MVC模型。在這種情況下,不需要從jsp調用會話bean,您可以從servlet本身調用它。
查看此鏈接從servlet調用EJB。 Click
0
1)第一種方式是創建一個直接對象
使用導入標記中使用正常的jsp
<%=object.callmethod()%>
2導入烏爾類
< % @ page import = packageName.Classname %>
<%
@EJB
Classname object = new Classname();
%>
然後訪問方法)另一種方式是使用標準動作
<jsp:useBean id="beanId' class="packagename.ClassName" />
<jsp:getStudentInfo name="beanId" property="name"/>
0
當你正在使用EJB的服務層和MVC中,我絕不會建議您查看呼叫會話bean或jsp.you可以使用@EJB註解通過注射EJB引用調用會話bean方法。
2
我試過在蜻蜓上做到這一點,但沒有成功使用@EJB註釋,可能JSP沒有CDI。所以,我已經實現了它的另一種方式(不那麼亮):
之前:
<%
LoginAction loginAction;
try {
Properties properties = new Properties();
properties.put("jboss.naming.client.ejb.context", true);
properties.put(Context.URL_PKG_PREFIXES,"org.jboss.ejb.client.naming");
Context ctx=new InitialContext(properties);
loginAction = (LoginAction) ctx.lookup("java:module/LoginAction");
session.setAttribute("loginAction", loginAction); //this is to be able to use loginAction on EL Expressions!
} catch (Exception e) {
e.printStackTrace();
}
%>
和所有其餘保持不變!
0
Simple..Override JSP的jspInit方法,並創建InitialContext對象.. InitialContext對象可以訪問所有具有JNDI名稱分配的資源..
<%!
BeanIntefaceName instanceName;
%>
<%
public void jspInit()
{
instanceName = (BeanIntefaceName)new InitialContext().lookup("java:global/[application_name]/[module_name]/[enterprise_bean_name]/[inteface_name]");
}
instanceName.yourMethodName();
%>
0
你可以混合和匹配,以支持多個應用服務器最好的辦法。 下面的代碼使用@EJB注入了WebSphere自由和InitialContext的JBoss的Wildfly
<%!
@EJB
GitlabHelper gitAPI;
public void jspInit() {
if (gitAPI == null) {
try {
gitAPI = (GitlabHelper) new InitialContext().lookup("java:module/GitlabHelper");
System.out.println("<!-- initContext has been used -->");
} catch (Exception e) {
e.printStackTrace();
}
}
}
%>
相關問題
- 1. 如何在Jsp中使用會話Bean?
- 2. 如何從PHP調用EJB會話bean?
- 3. Java EE 6:如何從無狀態會話Bean調用有狀態會話Bean?
- 4. JSP會話和Bean混淆
- 5. 從jsp調用bean方法
- 6. 調用EJB3會話bean
- 7. 如何從Android客戶端調用會話bean中的方法?
- 8. 使用會話bean
- 9. 從會話bean評估JSTL
- 10. 如何從請求bean更改會話bean的值?
- 11. 從servlet訪問JSP會話
- 12. 春會話bean
- 13. 如何用jquery值填充jsp會話?
- 14. 會話bean和實體bean?
- 15. 如何從watson會話中調用webservice?
- 16. 我可以從一個ejb3會話bean方法調用同一會話bean中的其他方法嗎?
- 17. 會話Bean不起作用
- 18. 呼叫會話作用域的bean從一個singleton bean
- 19. auto -instantiate會話bean?
- 20. 如何在無狀態會話bean
- 21. EJB無狀態會話bean和有狀態會話bean
- 22. 訪問相同會話bean的Java servlet和JSP
- 23. 如何在JSP EL中檢查會話?
- 24. 會話如何在JSP中創建?
- 25. 如何在jsp中創建會話對象和會話變量?
- 26. JSP中的會話
- 27. JSP會話內存?
- 28. 如何從會話bean將消息發送到消息驅動Bean間接
- 29. 爲什麼在jsp上調用會話會返回錯誤?
- 30. 通過調用jsp發送heartbeart不會保持會話活動
儘管MVC是首選方法,但還有其他一些事情需要考慮:首先,無論如何,JSP頁面被容器轉換爲servlet。因此,在JSP中訪問EJB沒有任何概念錯誤。其次,有時您需要來自EJB的信息來設置頁面。我有這種情況。我需要一個來自EJB的值列表來設置一個下拉列表。非常感謝您在其他答案中包含正確的語法。 – 2014-10-28 15:08:19