我对使用managedBean和JSF文件有疑问。我是这个概念的初学者,如果我的问题非常基本,我道歉。 这是我在managedBean java文件中的主要功能。
ArrayList<ArrayList<Object>> processDataSources(String mainFile, String comparingFile, int mainFileNumOfColumn, int comaringFileNumOfColumn),
简而言之,这个函数的作用是它逐行读取两个Excel文件的一定数量的列,并通过删除重复项清除其数据,并为每个文件返回一个干净数据集合,然后将集合中的每个记录与第二集中的每个记录。
然后它保留了每两个记录的通用术语。最终,此函数返回一个集合,该集合中的每个记录都是一个对象数组。这些对象id1,id2,匹配项的数量,匹配单词的集合,list1的原始单词的集合,以及list2的原始单词的集合。
ArrayList<ArrayList<Object>> processDataSources(String mainFile, String comparingFile, int mainFileNumOfColumn, int comaringFileNumOfColumn)
我的目标是有两个按钮来浏览Excel文件,一个按钮来启动该过程。按下Process按钮后,excel文件位置的路径值将传递给processDataSources()
函数,并且屏幕上将显示该过程的结果。我对如何在我的JSF文件中编写代码有一些含糊之处。如果有人给我一些提示,我真的很感激。
现在在我的XHTML文件中,我现在不知道如何获取processDataSources
函数返回的集合。
<!DOCTYPE html>
<html lang = "eng"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Excel file process</title>
</h:head>
<h:body>
<h:form>
//here I intend to put two browse button to browse into my computer and get a hold of 2 excel file
<h:commandButton value="process" action=""/>
// when Process button is pressed, I would like to save the address of the //
//two selected excel file and pass them to precessDataSource called below.
</h:form>
<h:dataTable value=#{procesDataSource(mainFile, comparingFile, mainFileNumOfColumn, comaringFileNumOfColumn) var="currentRecord"}
<h:column>
<f:facet name="header">Main List ID</f:facet>
#{currentRecord.get(0)}//is this right way of getting the value in the first bucket is correct. or do I have to create an object and store the value as the property of this object instead preserving it in an array?
<f:facet name="header">Number of matching</f:facet>
#{currentRecord.get(1)}
</h:column>
</h:body>
</html>