2015-08-25 34 views
2

讓我通過下面的話說這篇文章(所以沒有人把它標爲重複)。在JSP中唯一正確使用scriptlet

- 我知道,根據JSP規範,應該不惜一切代價避免JSP頁面中的scriptlet。如果有必要,他們的目的可以是將處理客戶請求返回的數據轉換成適當的客戶端就緒格式。

所以,我的問題是這樣的:下列情況是否屬於該類別?這是一個適當的使用scriptlet嗎?

在我的JSP頁面的頂部我使用scriplet捕捉到服務器端的數據:

<% User user = User.getUser(request); %> 

然後在我用一個小腳本來引用該對象的JSTL:

<c:set var="userName" value="<%=user.getLoginName()%>" /> 

後來當我通過AJAX提交表單時,我使用EL填充值:

params.userName = "${userName}"; 

我知道使用s在JSP中的criptlets被認爲是非常糟糕的形式,但我怎麼能得到用戶對象?

我是否需要強制後端開發人員將該值傳回給我,以便通過JSTL引用它?我猜這就是我必須做的。

+1

所有Java代碼需要做的就是將User實例放入請求屬性映射中。然後你需要做的就是引用'$ {user}'。 – Pointy

+0

如果User對象在會話範圍內,該怎麼辦?在JSP中訪問會話的正確方式是什麼?我可以這樣做嗎? fumeng

+1

您可以這樣做,或者您可以直接使用'$ {sessionScope.user}'。 – Pointy

回答

2

將用戶暴露於Java代碼中的JSP並通過EL檢索它。

這可以通過支持您的JSP,過濾器等的servlet完成,具體取決於您正在使用的框架。在這種情況下沒有理由使用scriptlet。

相關問題