I have a tree structure to display the file structure and a managed bean. I want to read the pdf/docx files and display it in the browser. i tried a lot but all i am getting is a ton of errors! please help me find a solution.
index.xhtml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://ift.tt/kkyg93">
<html xmlns="http://ift.tt/lH0Osb"
xmlns:h="http://ift.tt/HjFrZb"
xmlns:p="http://ift.tt/HjFrZc"
xmlns:ui="http://ift.tt/KsEgXx"
xmlns:f="http://ift.tt/HcrI1S">
<h:head>
</h:head>
<h:body>
<h2>File1</h2>
<br />
<h:form id="myForm" enctype="multipart/form-data">
<p:contextMenu for="tree">
<p:menuitem value="View" actionListener="#{treeManagedBean.view}" icon="ui-icon-search" onclick="dialoguebox(id)"></p:menuitem>
</p:contextMenu>
<p:tree id="tree" value="#{treeManagedBean.root}" var="node" dynamic="false" orientation="horizontal"
selectionMode="single" selection="#{treeManagedBean.singleSelectedTreeNode}" >
<p:treeNode expandedIcon="ui-icon ui-icon-folder-open"
collapsedIcon="ui-icon ui-icon-folder-collapsed">
<h:outputText value="#{node}"/>
</p:treeNode>
<p:treeNode type="document" icon="ui-icon ui-icon-document" >
<h:outputText value="#{node}"/>
</p:treeNode>
<p:treeNode type="image" icon="ui-icon ui-icon-image">
<h:outputText value="#{node}"/>
</p:treeNode>
<p:treeNode type="video" icon="ui-icon ui-icon-video">
<h:outputText value="#{node}"/>
</p:treeNode>
<p:ajax event="select" listener="#{treeManagedBean.onNodeSelect}"></p:ajax>
<p:ajax event="unselect" listener="#{treeManagedBean.onNodeUnSelect}"></p:ajax>
<p:ajax event="expand" listener="#{treeManagedBean.onNodeExpand}"></p:ajax>
<p:ajax event="collapse" listener="#{treeManagedBean.onNodeCollapse}"></p:ajax>
</p:tree>
</h:form>
<script>
function dialoguebox(id)
{
/* var docLocation = document.getElementById(id).value;
alert(docLocation);
var docLocation=$('#fileUpload').val();
var filePath = $(id).val();
*/
var filePath = $(this).val();
alert(console.log(filePath));
// var docLocation = treeManagedBean.selectedPath;
// window.open(docLocation,"resizeable,scrollbar");
}
</script>
</h:body>
</html>
managed bean
package controllers;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.util.Properties;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.FilenameUtils;
import org.primefaces.event.NodeCollapseEvent;
import org.primefaces.event.NodeExpandEvent;
import org.primefaces.event.NodeSelectEvent;
import org.primefaces.event.NodeUnselectEvent;
import org.primefaces.model.DefaultTreeNode;
import org.primefaces.model.TreeNode;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import javax.activation.MimetypesFileTypeMap;
import com.itextpdf.text.Document;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.parser.PdfTextExtractor;
@ManagedBean
@SessionScoped
@Controller
public class TreeManagedBean {
private String msg;
// TreeNode instance
private TreeNode root;
private TreeNode singleSelectedTreeNode;
private TreeNode[] multipleSelectedTreeNodes;
private TreeNode[] checkboxSelectedTreeNodes;
TreeNode document01;
String str;
public String getSelectedPath() {
return selectedPath;
}
public void setSelectedPath(String selectedPath) {
this.selectedPath = selectedPath;
}
private String selectedPath;
public void get(String path, TreeNode node) {
File directory = new File(path);
File[] fList = directory.listFiles();
String filetype = "";
for (File file : fList) {
if (file.isDirectory()) {
document01 = new DefaultTreeNode(file.getName(), node);
get(file.getAbsolutePath(), document01);
} else {
document01 = new DefaultTreeNode("document", file.getName(),
node);
}
}
}
public void info() {
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage(FacesMessage.SEVERITY_INFO, "Info", msg));
}
public TreeManagedBean() throws IOException {
// This is the root node, so it's data is root and its parent is null
// File directory = new File("D:/files");
this.root = new DefaultTreeNode("Files 1", null);
// Create documents node
TreeNode documents[];
Properties prop = new Properties();
InputStream input = null;
String filename = "application.properties";
input = getClass().getClassLoader().getResourceAsStream(filename);
prop.load(input);
msg = prop.getProperty("msg");
get(msg, root);
}
public TreeNode getRoot() {
return root;
}
public void setRoot(TreeNode root) {
this.root = root;
}
public TreeNode getSingleSelectedTreeNode() {
return singleSelectedTreeNode;
}
public void setSingleSelectedTreeNode(TreeNode singleSelectedTreeNode) {
this.singleSelectedTreeNode = singleSelectedTreeNode;
}
public TreeNode[] getMultipleSelectedTreeNodes() {
return multipleSelectedTreeNodes;
}
public void setMultipleSelectedTreeNodes(
TreeNode[] multipleSelectedTreeNodes) {
this.multipleSelectedTreeNodes = multipleSelectedTreeNodes;
}
public TreeNode[] getCheckboxSelectedTreeNodes() {
return checkboxSelectedTreeNodes;
}
public void setCheckboxSelectedTreeNodes(
TreeNode[] checkboxSelectedTreeNodes) {
this.checkboxSelectedTreeNodes = checkboxSelectedTreeNodes;
}
public void onNodeSelect(NodeSelectEvent event) {
System.out.println("Node Data ::" + event.getTreeNode().getData()
+ " :: Selected");
str = (String) event.getTreeNode().getData();
TreeNode tr = event.getTreeNode();
while (true) {
if (tr.getParent().getData().equals("HR FILES"))
break;
str = tr.getParent() + "\\" + str;
tr = tr.getParent();
}
str = msg + "\\" + str;
this.setSelectedPath(str);
System.out.println("Path: " + str);
}
public void onNodeUnSelect(NodeUnselectEvent event) {
System.out.println("Node Data ::" + event.getTreeNode().getData()
+ " :: UnSelected");
}
public void onNodeExpand(NodeExpandEvent event) {
System.out.println("Node Data ::" + event.getTreeNode().getData()
+ " :: Expanded");
}
public void onNodeCollapse(NodeCollapseEvent event) {
System.out.println("Node Data ::" + event.getTreeNode().getData()
+ " :: Collapsed");
}
public String printSelectedNodes() {
System.out.println("Single Selection Is :: "
+ this.singleSelectedTreeNode.getData());
for (TreeNode n : this.multipleSelectedTreeNodes) {
System.out.println("Multiple Selection Are :: " + n.getData());
}
for (TreeNode n : this.checkboxSelectedTreeNodes) {
System.out.println("CheckBox Selection Are :: " + n.getData());
}
return "";
}
public void view(ActionEvent e) throws IOException {
System.out.println("View action has invoked against node :: "
+ this.singleSelectedTreeNode.getData());
String ext = FilenameUtils
.getExtension((String) this.singleSelectedTreeNode.getData());
System.out.println("Extension: " + ext);
/*f(ext.equals("pdf")){
try {
PdfReader reader = new PdfReader(str);
int n = reader.getNumberOfPages();
String str = PdfTextExtractor.getTextFromPage(reader, 2);
System.out.println(str);
((Reader) document01).close();
} catch (Exception e1) {
System.out.println(e1);
}
}*/
}
/*
* FileOutputStream fos = new FileOutputStream(str); String strContent =
* (String) this.singleSelectedTreeNode.getData();
* fos.write(strContent.getBytes());
* System.out.println(strContent.getBytes()); fos.close(); }
*/
/*
* ByteArrayOutputStream baos = new ByteArrayOutputStream();
*
*
* HttpServletResponse response =
* (HttpServletResponse)FacesContext.getCurrentInstance()
* .getExternalContext().getResponse();
* response.setContentType("pdf/plain");
* response.setHeader("Content-disposition","attachment; filename="+str);
* try { //No buffering, content is a byte array int content = 0; //
* OutputStream outputStream = response.getOutputStream();
* response.getOutputStream().write(content); //
* baos.writeTo(response.getOutputStream()); // outputStream.flush(); }
* catch(IOException ioException){ System.out.println(""); }
*/
public void printWelcome() {
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage(FacesMessage.SEVERITY_INFO, "Info", msg));
}
}
the path of the file has been loaded through an application.properties file.
Aucun commentaire:
Enregistrer un commentaire