2012-08-09 27 views
0

我希望在我提交表單時從JSP調用一個java類方法。 我的JSP文件將有一個文件標籤。 用戶將從他的本地機器瀏覽文件。然後點擊提交。 該文件對象應該在Java類中可用,我將擁有自己的業務邏輯。在JSP表單上調用java類方法提交併傳遞File對象參數

這可能沒有使用struts?

<s:form action="**direct call to Action method here**" method="post" enctype="multipart/form-data" > 
<s:file name="userImage" label="User Image" /><s:submit /> 

請幫助我做到這一點。

謝謝。

回答

0

action的值應該是URL。給定的URL指定表單中的數據在提交表單時應發送到的地址。

使用下面的JSP頁面的html代碼:

<form action="uploadFile" method="post" 
        enctype="multipart/form-data"> 
<input type="file" name="file" /> 
<input type="submit" value="Upload file" /> 

定義的servlet的映射來負責自己web.xml文件加載文件:

<servlet> 
    <servlet-name>UploadServlet</servlet-name> 
    <servlet-class>package.UploadServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>UploadServlet</servlet-name> 
    <url-pattern>/uploadFile</url-pattern> 
</servlet-mapping> 

和執行這個servlet的方法的doPost從哪裏撥打您業務邏輯的方法:

protected void doPost(HttpServletRequest request, HttpServletResponse response) { 
    yourMethod(); 
} 

你可以,如果你正在使用你的應用程序只JSP指定屬性action任何JSP頁面:

<form action="upload_file.jsp" method="post" enctype="multipart/form-data"> 

本頁面將處理在這種情況下上傳文件的請求。

+0

我嘗試了上述步驟,但它沒有爲我工作。我知道我可能會在這裏錯過一些東西。以下是我的代碼: JSP:

<輸入類型= 「提交」 值= 「上傳文件」/>
Web.xml中: \t \t UploadServlet \t \t 融爲一體。 action.UploadAction \t Class: public class UploadAction extends HttpServlet { protected void doPost(HttpServletRequest request,HttpServletResponse response){ \t syso(「There」); \t} } – DarkKnightFan 2012-08-09 10:58:35

+0

你會得到什麼例外?你的配置文件中有'servlet-mapping'標籤嗎? – kapand 2012-08-09 11:12:10

+0

它說_HTTP狀態404 - 有/無動作映射爲命名空間和動作名稱uploadFile._ ** web.xml中:**' \t \t UploadServlet \t \t com.action。UploadAction \t \t \t \t UploadServlet \t \t /uploadFile \t' – DarkKnightFan 2012-08-09 11:20:39

相關問題