I在一个名为Jahia的CMS上工作,我试图从XML列表中显示带有按钮的文件列表,这些按钮调用操作以显示文件。 <button type="submit" >

问题描述 投票:0回答:1
它可以与Mozilla浏览器一起使用,但是在Internet Explorer中显示了列表,但内部的按钮不起作用。有什么想法吗?我认为问题在于

<button type="input">列表,也许IE不会像其他浏览器那样使用它。 <!DOCTYPE html> <%@ taglib prefix="jcr" uri="http://www.jahia.org/tags/jcr" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="utility" uri="http://www.jahia.org/tags/utilityLib" %> <%@ taglib prefix="template" uri="http://www.jahia.org/tags/templateLib" %> <%@ taglib prefix="functions" uri="http://www.jahia.org/tags/functions" %> <jsp:useBean id="displayList" class="org.jahia.modules.connect.displayList" scope="request"> <jsp:setProperty name="displayList" property="userID" value="10" /> </jsp:useBean> <form action="<c:url value='${url.base}${currentNode.path}.Connect.do'/>" method="post" id="ContactForm" enctype="multipart/form-data"> </form> <table id="table_id" class="display" width="100%" cellspacing="1" cellpadding="0" border="1" align="left" bgcolor="#999999">> <caption> Files of current user</caption> <thead> <tr> <th>Download</th> <th>Directory</th> <th>file Name</th> <th>document type</th> <th>Date</th> </tr> </thead> <tbody> <c:forEach items="${displayList.test}" var="CdFile"> <tr> <td><button name="subject" form="ContactForm" type="submit" value="${CdFile.path}">Download</button></td> <td>${CdFile.folder}</td> <td>${CdFile.fileName}</td> <td>${CdFile.docType}</td> <td>${CdFile.date}</td> </tr> </c:forEach> </tbody> </table>

我已经为测试的用户ID值进行了硬编码
有javabean呼吁阅读XML,然后创建文件列表

public class displayList{
  private String userID;
  private String pathToXML = "C:\\Users\\adm_fjousse\\Desktop\\serviceWin$test\\CnD_1000\\" ;
    FileList fileList = new FileList();
  private List<CdFile> test = new ArrayList<CdFile>();
  public void setUserID(String userID){
    this.userID = "ID"+ userID;
    this.pathToXML = this.pathToXML + this.userID + ".xml";

    startSocket();
  }

  public String getUserID(){
    return this.userID;
  }
   public List<CdFile> getTest(){
    return this.test;
  }

  public void startSocket(){
    
        BufferedReader in;
        PrintWriter out;

        XStream xStream = new XStream();
        ByteArrayOutputStream baos = new ByteArrayOutputStream()  ;
        String xml = "";
        try{
            //D'abord le client se connecte et attend un message.
            Socket sock = new Socket(InetAddress.getByName("10.232.12.6"),2008);
            in = new BufferedReader (new InputStreamReader (sock.getInputStream()));
            //String message_distant = in.readLine();
            System.out.println("1================================");
            //Puis il dit qui il est 
            out = new PrintWriter(sock.getOutputStream());
            out.println(userID);
            out.flush();
          
            //Ensuite le serveur va lui envoyer le fichier correspondant en fonction de son ID
            transfert(sock.getInputStream(),baos, true);
            System.out.println("size ===="+ baos.size());
            System.out.println(userID);
            xml =baos.toString("UTF-8");
            

            
            xStream.alias("CdFile", CdFile.class);
            xStream.alias("files", FileList.class);
      
            xStream.addImplicitCollection(FileList.class, "fileList");

            System.out.println("2================================"+ xml);
            this.fileList = (FileList)xStream.fromXML(xml);
            System.out.println(fileList);   
            this.test = fileList.getFileList();
            System.out.println("3================================");    
            sock.close();
        }
        catch(Exception e){
            e.getMessage();
        }
   }
  public static void transfert(InputStream in , OutputStream out, boolean closeOnExit ) throws Exception{
    try{byte buf[] = new byte[1024];
        int n;
        
        while((n=in.read(buf))!=-1){
        System.out.println("============loop");
    
            out.write(buf,0,n);
            
            out.flush();
            }
        out.close();
       }
        catch(Exception e){
            e.getMessage();
        }
        
    }
    
  }
   

当有一个onclick调用时,有一个措施显示文件:
public class Connect extends Action{
  @Override
    public ActionResult doExecute(HttpServletRequest req, RenderContext renderContext, Resource resource,
                                       JCRSessionWrapper session, Map<String, List<String>> parameters,
                                       URLResolver urlResolver) throws Exception{
             System.out.println("11212================================");
        
        HttpServletResponse r = renderContext.getResponse();

        BufferedReader in;
        PrintWriter out;
             System.out.println("first================================");

        String fileToSend = parameters.get("subject").get(0);
        System.out.println(fileToSend);
        System.out.println("1================================");
        try{
            //D'abord le client se connecte et attend un message.
            Socket sock = new Socket(InetAddress.getByName("10.232.12.6"),2008);
            in = new BufferedReader (new InputStreamReader (sock.getInputStream()));
            //String message_distant = in.readLine();
            //System.out.println(message_distant);
            //Puis il dit qui il est           
          System.out.println("1================================");

            out = new PrintWriter(sock.getOutputStream());
            out.println(fileToSend);
            out.flush();
                      System.out.println("2================================");

            //Ensuite le serveur va lui envoyer le fichier correspondant en fonction de son ID
            transfert(sock.getInputStream(),r.getOutputStream(), true);
            renderContext.setResponse(r);
          System.out.println("3================================");

            sock.close();
            
       }
        catch(Exception e){
            e.getMessage();
        }
   return new ActionResult(HttpServletResponse.SC_OK, null,  new JSONObject());//,null, generateJSONObject(clientNode));
   }
  public static void transfert(InputStream in , OutputStream out, boolean closeOnExit ) throws Exception{
    try{byte buf[] = new byte[1024];
        int n;
        while((n=in.read(buf))!=-1){
            out.write(buf,0,n);
          System.out.println("4================================");

            out.flush();}  
       }
        catch(Exception e){
            e.getMessage();
        }
        
    }
  }

Serversideclass

public class ClientService extends Thread { Socket sockClient; /*******************************************/ public ClientService(Socket client) { sockClient = client; start(); } /*******************************************/ public void run() { try { BufferedReader in = new BufferedReader(new InputStreamReader(sockClient.getInputStream())); //PrintStream out = new PrintStream(sockClient.getOutputStream()); String distantMsg = in.readLine(); if(distantMsg.contains("ID") && distantMsg.length() < 15) { String fileToSend = "C:\\Users\\adm_fjousse\\Desktop\\output\\"+ distantMsg +".xml"; Commun.transfert(new FileInputStream(fileToSend), sockClient.getOutputStream(), true); } else{ String fileToSend = distantMsg; Commun.transfert(new FileInputStream(fileToSend), sockClient.getOutputStream(), true); /*out.println("service running : "+(new Date())); out.flush(); out.close();*/ } } catch(Exception ex) {} try { sockClient.close(); } catch(Exception ex) {} sockClient = null; } } class Commun{ public static void transfert(InputStream in , OutputStream out, boolean closeOnExit) throws IOException{ byte buf[] = new byte[1024]; int n; while((n=in.read(buf))!=-1){ out.write(buf,0,n); out.flush(); } if(closeOnExit){ in.close(); out.close(); } } }

我的Mozilla Works的最终视图

    

阅读后,您使用按钮提交表格。 因此,您可以在此处找到问题,在浏览器支持表中
http://www.w3schools.com/tags/att_button_form.asp

您使用按钮的表单属性。 IE不支持这。你应该使用这个 <input type="submit" value="Download"/>

html forms internet-explorer button browser
1个回答
3
投票
Edit:好吧,自从开始阅读^^ Quentin以来,有很多评论,如果您写下答案,我会删除我的;)

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.