2012-06-25 2 views
2

안녕하세요 저는 평생을 시작하고 한 가지 문제가 있습니다. jsp에서 포틀릿으로 POST를 보낼 수 없습니다. JSP에서liferay 포틀릿에서 POST를 보내는 방법은 무엇입니까?

는 내가 가지고 : 포틀릿

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> 
<%@ page language="java" contentType="text/html; charset=UTF-8" 
pageEncoding="UTF-8"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 

<portlet:defineObjects /> 

<div> 
    <form action="HelloWorld" method="post" enctype="multipart/form-data"> 
    <div id="up"> 
    <input id="fileUpload1" type="button" name="filename" value="Привет"> 
    </div> 
    </form> 
</div> 

:

public class HelloWorld extends GenericPortlet { 
protected void doGet(ActionRequest request, 
    ActionResponse response) throws ServletException, IOException 
    { 
// reading the user input 
//String color= request.getParameter("color"); 
HttpServletResponse servletResponse = PortalUtil.getHttpServletResponse(response); 
PrintWriter out = servletResponse.getWriter(); 
    out.println("<HTML>"); 
    out.println("<HEAD <TITLE> Upload4 </TITLE> </HEAD>"); 
    out.println("<BODY>"); 
    out.println("<FORM action = \"HelloWorld\" method = \"post\" enctype = \"multipart/form-data\">"); 
    out.println("<div id='up'>"); 
    out.println("Hello World!!"); 
    out.println("<input id='fileUpload1' type='button' name='filename' value='Привет'>"); 
    out.println("</div>"); 
    out.println("</FORM>"); 
    out.println("</BODY>"); 
    out.println("</HTML>"); 
} 
    } 

내가 실수 할 수 있습니까? 포틀릿의 XML 파일에 무언가를 쓸 것인가? 폼 태그

답변

7

이 많은 수준에 잘못 - 죄송합니다 - 어디서부터 시작 내가 모르는 :

  • 당신은 없다 "HelloWorld"
  • 당신은 processAction을 구현하는 대신해야 할 <portlet:actionURL />에 게시한다
  • 당신은 당신에게 단지 시간을 처리 내용 행동
  • 를 작성하기 위해 액션 핸들러에 원래 HttpServletRequest에 접근해서는 안 (오히려 서블릿 같은 소리) doGet 위상을 렌더링하는 동안 생성하는 HTML이 <html>, <head>하지만 포털이 페이지
  • 에 포함시킬 것을 단지 일부를 포함하지 않는 당신이
  • 을 필요로하는 HTML 렌더링 작업을 andle와 내가 놓친 같은 느낌 몇 가지 더 .........

기본 개념을 얻으려면 Liferay in Action 책과 같은 튜토리얼부터 시작하는 것이 좋습니다.

+0

Tnx for book. 나는 당신이 작성한 것을 모두 중재하지만 서블릿은 새로운 페이지를 생성하지 않는다. –

+1

올라프 (Olaf)가 말했듯이, 배울 점이 없으면 몇 가지 문서를 읽으십시오. Liferay의 공식 문서에는 현재하고있는 일부터 시작하는 데 필요한 모든 것이 있습니다. http://www.liferay.com/documentation/liferay-portal/6.1/development/-/ai/portlet-developme-3 –

2

동작 특성

<form action="<portlet:actionURL />" method="post" enctype="multipart/form-data"> 

<portlet:actionURL />은 또한 포틀릿 자바 파일에 대한 processAction(ActionRequest request, ActionResponse response) POST 방법을 구현해야한다.

+0

+0

@KliverMax 이미 간단한 방법으로 작성했습니다. –

+0

public void processAction (ActionRequest request, ActionResponse response)이 IOException을 던졌습니다. {변경 사항 없음 –

관련 문제