0

ポートレットに問題があります。portlet.xmlスタンダートラインで書くとき

<portlet-class>com.liferay.util.bridges.mvc.MVCPortlet</portlet-class>

私のjspページは正常に動作します。しかし、私が私のポートレットクラスを追加するとき

<portlet-class>test.uploadport</portlet-class>

jspページのJavaコードは実行されません。view.jspから呼び出されたページについて話しているのではありませんview.jsp

ポートレットからのdoView()に問題があると思います

uploadport.java

package test;

import java.io.*;
import java.util.Iterator;
import java.util.List;

import javax.portlet.*;


import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.*;
import org.apache.commons.fileupload.portlet.*;
import org.apache.commons.fileupload.servlet.*;
import org.apache.commons.fileupload.util.*;
public class uploadport extends GenericPortlet {
private String error;
public void doView(RenderRequest req, RenderResponse res)
throws IOException, PortletException
{
 WindowState state = req.getWindowState();
 res.setContentType("text/html");
 PortletSession session = req.getPortletSession(true);
 PortletContext context = getPortletContext();
 PortletRequestDispatcher rd;
 rd = context.getRequestDispatcher("/view.jsp");
 rd.include(req, res);

}
public void processAction(ActionRequest req, ActionResponse res)
throws IOException, PortletException
{
System.out.println("VASAY - PIROZJOK");
    PortletSession session = req.getPortletSession(true);
    DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
    PortletFileUpload portletFileUpload = new PortletFileUpload(diskFileItemFactory);
    List<FileItem> list=null;
    String mifpath= "1";
    String path = " ";
    String mif = " ";
    String from = "\\\\";
    String to ="/";
    String error="";
    try{
        list = portletFileUpload.parseRequest(req);
        Iterator<FileItem> it = list.iterator();
        //response.setContentType("text/html");
       while ( it.hasNext() ) 
       {

          FileItem item = (FileItem) it.next();
          File disk = new File("C:/uploaded_files/"+item.getName());

    path = disk.toString();

    String code = new String(path.substring(path.lastIndexOf("."), path.length()).getBytes("ISO-8859-1"),"utf-8");
    if (code.equalsIgnoreCase(".zip"))
    {
        System.out.println("PIROZJOK");
        mifpath=path;
        mif = mifpath.replaceAll(from, to);
        item.write(disk);
        error=unzip.unpack(mif, "C:/uploaded_files");
    }
    else
    {
        error = "Выбранный файл не является архивом zip";

    }
  }
}
 catch ( Exception e ) {
 log( "Upload Error" , e);
} 

}
 private void log(String string, Exception e)
   {
// TODO Auto-generated method stub

}
} 

なぜそのヘッピング?

4

1 に答える 1

0

この問題は特に解決されました。
1.使用する必要はありMVC portletませんGeneric Portlet
2.doView()ポートレットから 削除します

それがすべてです。しかし、thareは葯の問題です。
1.MVC portlet最高の選択ではありません。2.なしでポートレットから
にパラメータを送信する方法は?view.jspdoView()

于 2012-07-03T07:32:21.397 に答える