2011-12-09 31 views
1

我有許多位於Java servlet應用程序的WEB-INF目錄中的視圖文件(帶有.HTML擴展名)。我希望能夠從視圖中引用控制器中定義的變量。HTML頁面中的引用控制器變量

控制器:

String email_address = ... 

視圖:

<INPUT type='text' name='email' value='<%= email_address %>'/> 

不幸的是,<%=%>語法無效。

什麼是正確的語法?

**編輯**

如果它的確與衆不同,我引用HTML方式:

request.getRequestDispatcher("/WEB-INF/form_auth.html").forward(request, response); 

回答

2

沒有語法是什麼;這樣的功能不存在。

您需要將對象放入範圍才能在JSP中引用它。就你而言,如果你想引用HTML文件中的動態屬性,你需要通過JSP處理器(或其他模板機制)運行HTML文件。

或者,您可以通過servlet機制映射.html URL,並使用JSP(或其他模板)作爲.html URL的實際實現。

這些日子不是通過scriptlets(<%= %>語法)完成的。這應該使用普通的JSP EL(語法爲${ })和範圍的屬性來完成,通常是請求範圍。

例如,您可能使單一變量:

// Java: 
// Java conventions would name this "emailAddress", not "email_address". 
request.setAttribute("emailAddress", emailAddress); 

<%-- JSP --%> 
${emailAddress} 

或者建立一個完整的DTO對象:

// Java 
dto.emailAddress = "[email protected]"; 
request.setAttribute("dto", dto); 

<%-- JSP --%> 
${dto.emailAddress} 
+0

+1 - 我的回答完全是多餘的。 –

+0

@lwburk很難說;如果它們真的是'.html'文件,並且未被容器處理,它肯定不會像OP希望的那樣工作。 –

相關問題