2015-09-20 130 views
0

我有一個web應用程序,我使用JSP,所以當我插入java代碼時,我開始打開它作爲<%%>,但我想用<%!%>我該怎麼辦?轉換JSP java代碼

有我的代碼:

<body> 
     <h1>Factorial</h1> 

    <form action="" method=post> 
    <input type="number" name="cantidad" min="1"> 
    <input type= "submit" value=submit> 
    </form> 
      <% 

     String numero=request.getParameter("cantidad"); 

if(numero != null){ 
    Integer num = Integer.parseInt(request.getParameter("cantidad")); 
     if(num != null){ 
      int res =1; 

     for (int s=1; s <=num; s++){ 
      res *=s; 
     } 
     out.print(res); 
     } 

} 


    %> 
</body> 

那麼,我該怎麼辦呢?

+0

只是爲了澄清,你想用'<%! . . . !%>'作爲插值標籤嗎? – CollinD

+0

是兄弟,但據我所知'<%!' and '%>' –

+0

在JSP中不是。 – Kenney

回答

2

<%! %>用於JSP Declarations

該鏈接的Java EE 5教程說(部分)

一個JSP聲明用於在頁面的腳本語言來聲明變量和方法。

所以你需要聲明的東西

<%! 
    static final int getANumber() { 
     return 101; 
    } 
%> 

,那麼你可以調用一個scriptlet該功能。但你真的應該更喜歡使用更現代的Java Web技術(並避免scriptlet)。

+0

ooo excelent ...所以我的代碼現在'<%! int res = 1; '我和其他代碼''<% ....%>' –

1

應用程序服務器將所有JSP文件轉換爲Servlet(.java和最終的.class)文件。

JSP聲明:

<%! int count = 0; %> ===>在服務器生成的 Servlet類中聲明'count'實例變量,這個變量對於所有請求都是通用的,除非有很強的理由,否則這種用法是不鼓勵的。

小腳本:

<%詮釋計數= 0; %> ===>聲明服務內部的局部變量() 方法,這個變量對於每個請求是本地的,所以不存在使用問題。但是,JSP內部的腳本通常被認爲是不好的做法。

+0

'我不使用servlet ...我在JSP上做所有工作,所以我現在聲明'<%! int res = 1; %>'和我的其他代碼在'<% ....%>' –

+0

@GerardoVentas再次閱讀第一句。 **所有** JSP(s)被編譯爲一個servlet。 –

+0

如果我沒有任何servlet,JSP只是作爲隱藏或系統servlet運行? –

0

<℅!℅>,用於剛剛變量和方法的聲明。