上傳的文件在JSF中設置為空。我在JSF中上傳文件,它始終是null以便我得到NullPointerException。
⑵ jsf文件怎麼打開阿
1、可以用"Ultraedit"打開。
2、用記事本也可以打開的。
JSF文件:
JSF主要由兩個部分組成:一套功能強大的API函數,用來表示UI組件、管理組件狀態、處理事件、進行輸入有效性驗證,以及對國際化和可訪問性的支持;一套包含各種頁面元素的並允許自定義的JSP標簽庫,用來在JSP頁面中顯示JSF的界面。通過使用JSF所提供的簡單而又實用的模型,任何開發人員都可以快速輕松地開發Web應用程序。他們可以使用大量現成的可重用的UI組件,並將這些組件與數據源連接,還可以很容易地將客戶端事件和伺服器端的事件處理程序綁定。強大的JSF技術可以很好地處理和管理任何復雜的用戶界面,使開發人員可以將注意力集中在應用程序的開發上。
⑶ jsf頁面文件下載後Richfaces.showModalPanel不彈出小窗口的問題
這是jsf的bug 與生命周期有關系,具體原因我也忘了,提幾個建議
1你可以把這兩個控制項放到兩個不同的h;form里試試
2oncomplete改為onclick
⑷ jsf 為什麼excel文件下載後變成zip格式,最好有代碼,謝謝
不會吧?我做的下載頁面雖然不是純JSF的,傳遞參數是用的JSF,而且解決了中文亂碼問題,包括文件名,文件內容。希望對你有幫助。
下載請求頁面傳遞過來的參數:
<rich:column>
<h:outputLink value="file.jsp" rendered="true">
<f:param name="docId" value="#{item.id.docId}" / <f:param name="revNo" value="#{item.id.revNo}" />
<f:param name="attachmentNo" value="#{item.id.attachmentNo}" />
<f:param name="filename" value="#{item.fileName}" />
<f:param name="storageName" value="#{item.storageName}" />
<h:outputText value="#{item.fileName}" />
</h:outputLink>
</rich:column>
執行請求的file.jsp 下載頁面
<%@page language="java" contentType="application/octet-stream" pageEncoding="utf-8"%>
<%@page import="java.io.*,java.util.*,java.net.URLEncoder"%>
<%response.reset();
String ATTACHMENTSTOREPATH = File.separator + "local"
+ File.separator + "uploads" + File.separator + "wf"
+ File.separator + "cpi";//此處以CPI為例
int docId = 0;
int revNo = -1;
int attachmentNo = 0;
String filename = null;
String storageName = null;
try {
docId = Integer.parseInt(request.getParameter("docId"));
revNo = Integer.parseInt(request.getParameter("revNo"));
attachmentNo = Integer.parseInt(request.getParameter("attachmentNo"));
//在火狐瀏覽器下載,含空格的文件名會出現異常,於是將空格用下劃線代替
filename = (new String(request.getParameter("filename").
getBytes("ISO-8859-1"),"UTF-8")).replace(" ", "_");
//將空格轉化為下劃線後重新對文件名進行UTF-8編碼
filename = java.net.URLEncoder.encode(filename, "UTF-8"); storageName = request.getParameter("storageName");
} catch (NumberFormatException nfe) {
}
if (docId >= 0 && revNo > -1 && attachmentNo >= 0) {
String filePath = null;
filePath = ATTACHMENTSTOREPATH + File.separator + storageName;
response.setContentType("application/octet-stream");
//因為瀏覽器會將字元GBK編碼,所以從資料庫獲得的UTF-8需要轉換成GBK
//UTF-8一個漢字24位,GBK一個漢字16位
//Start UTF-8 to GBK(相對以前的程序主要就是修改了這里)
String str=filename;
StringBuffer sb = new StringBuffer();
for(int i=0; i<str.length(); i++) {
char c = str.charAt(i);
switch (c) {
case '+':
sb.append(' ');
break;
case '%':
try {
sb.append((char)Integer.parseInt(
str.substring(i+1,i+3),16));
}
catch (NumberFormatException e) {
throw new IllegalArgumentException();
}
i += 2;
break;
default:
sb.append(c);
break;
}
}
String result = sb.toString();
result= new String(result.getBytes("ISO-8859-1"),"UTF-8");
response.addHeader("Content-Disposition", "attachment; filename=" + new String(result.getBytes("GBK"),"ISO-8859-1"));
//End UTF-8 to GBK
BufferedOutputStream bos = null;
BufferedInputStream bis = null;
try {
bos = new BufferedOutputStream(response.getOutputStream());
bis = new BufferedInputStream(new FileInputStream(filePath));
byte[] buffer = new byte[1024];
int n = -1;
while ((n = bis.read(buffer)) > -1) {
bos.write(buffer, 0, n);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
bis = null;
bos = null;
}
}
%>
ext3 , ext4的文件系統對磁碟讀和寫的數據量比較多
如果很在意移動硬碟的佔用空間, 建議最好使用 ext2.
數據安全性方面, 還是ext3 , ext4的好。
⑹ 如何正確安裝和配置JSF通過Maven庫
nbproject-存放項目的具體配置文件
src-java源代碼存放文件夾
test-JUnit測試文件存放位置專
Build.xml構建描述文件,因為屬Netbeans的編譯打包是基於ant的,build就是ant實現自動編譯打包的描述文件。
manifest.mf是打包的時候需要的一個清單文件,是對打包後的jar包中的文件的一個描述下文件。
original.java,.netbeans_automatic_build,這兩個文件不知道你用的什麼Netbeans版本,在我的版本中並未生成此文件。
build-impl.xml是對Build.xml文件的具體描述,Build.xml其實並未實現具體的ant構建腳本,具體是在該文件中實現的,如果你看過build.xml的源代碼,就會發現一句<import file="nbproject/build-impl.xml"/>,這你就知道是什麼意思了。
⑺ 如何使用jsf上傳文件
使用jsf加myfaces的upload插件實現上傳文件的功能
需要的jar包:tomahawk-1.1.6.jar,jsf-impl.jar,commons-fileupload-1.2.jar,commons-io-1.3.2.jar,commons-el-1.0.jar
程序:
package model.map;
import control.MapMDelegate;
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import org.apache.myfaces.custom.fileupload.UploadedFile;
public class FileUploadForm {
public FileUploadForm() {
}
private String name;
private UploadedFile upFile;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setUpFile(UploadedFile upFile) {
this.upFile = upFile;
}
public UploadedFile getUpFile() {
return upFile;
}
public String upload() throws IOException {
try {
InputStream in = new BufferedInputStream(upFile.getInputStream());
try {
byte[] buffer = new byte[(int)upFile.getSize()];
Date now = new Date();
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMddHHmmss");
String dt2 = sdf2.format(now);
//取得後綴名
String name = upFile.getName();
int l = name.lastIndexOf(".");
name = name.substring(l);
//生成2位隨機數
Random random = new Random();
String sRand="";
String rand = null;
for (int count=0;count<2;count++){
rand=String.valueOf(random.nextInt(10));
sRand+=rand;
}
//生成在伺服器端保存的文件名
String saveName = dt2 + sRand + name;
this.setName(saveName);
String trace = D:\\"+ saveName;//本地測試
FileOutputStream fileOutputStream =
new FileOutputStream(trace); //這里可以把上傳的文件寫伺服器目錄,或者資料庫中 ,或者賦值給name用於文件名顯示
while (in.read(buffer) > 0) {
fileOutputStream.write(buffer);
}
} catch (Exception x) {
System.out.print("Exception");
FacesMessage message =
new FacesMessage(FacesMessage.SEVERITY_FATAL,
x.getClass().getName(), x.getMessage());
FacesContext.getCurrentInstance().addMessage(null, message);
return null;
}
finally {
in.close();
FacesContext facesContext = FacesContext.getCurrentInstance();
facesContext.getExternalContext().getApplicationMap().put("fileupload_bytes",
upFile.getBytes());
facesContext.getExternalContext().getApplicationMap().put("fileupload_type",
upFile.getContentType());
}
System.out.println("End");
return "OK";
} catch (Exception x) {
System.out.print("Exception");
FacesMessage message =
new FacesMessage(FacesMessage.SEVERITY_FATAL,
x.getClass().getName(), x.getMessage());
FacesContext.getCurrentInstance().addMessage(null, message);
return null;
}
}
public boolean isUploaded() {
FacesContext facesContext = FacesContext.getCurrentInstance();
return facesContext.getExternalContext().getApplicationMap().get("fileupload_bytes") !=
null;
}
}
頁面:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@ page contentType="text/html;charset=GBK"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030"/>
<title>add-map</title>
</head>
<body>
<h:outputText value="#{MapMDelegate.msg}" style="color:rgb(255,0,0);"/>
<h:form enctype="multipart/form-data">
<t:inputFileUpload value="#{fileuploadForm.upFile}"/>
<br/>
<h:message for="fileupload"/><h:commandButton value="上傳"
action="#{fileuploadForm.upload}" />
</h:form>
<h:form>
<br/>
圖紙名稱 <h:inputText value="#{fileuploadForm.name}" disabled="true"/>
</h:form>
</body>
</html>
</f:view>
記得要在工程的web.xml文件中加入filter
<!--Tomahawk-->
<filter>
<filter-name>extensionsFilter</filter-name>
<filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
<init-param>
<description>Set the size limit for uploaded files.
Format: 10 - 10 bytes
10k - 10 KB
10m - 10 MB
1g - 1 GB</description>
<param-name>uploadMaxFileSize</param-name>
<param-value>10m</param-value>
</init-param>
<init-param>
<description>Set the threshold size - files
below this limit are stored in memory, files above
this limit are stored on disk.
Format: 10 - 10 bytes
10k - 10 KB
10m - 10 MB
1g - 1 GB</description>
<param-name>uploadThresholdSize</param-name>
<param-value>1k</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>extensionsFilter</filter-name>
<url-pattern>/faces/*</url-pattern>
</filter-mapping>
還有把你的程序設置成request哦
<managed-bean>
<managed-bean-name>fileuploadForm</managed-bean-name>
<managed-bean-class>model.map.FileUploadForm</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
⑻ Linux文件系統中包括的主要文件類型有哪些
主要文件類型包括如下:
ext: ext 是第一個專門為 Linux 的文件系統類型,叫做擴展文件系統。
ext2:ext2 是為解決 ext 文件系統的缺陷而設計的可擴展的高性能的文件系統.又被稱為 二級擴展文件系統
ext3: ext3 是由開放資源社區開發的日誌文件系統,. ext3 被設計成是 ext2 的升級版本。
jsf: jsf 提供了基於日誌的位元組級文件系統,該文件系統是為面向事務的高性能系統而開發的。
ReiserFS: ReiserFS 基於平 衡樹結構的 、ReiserFS 文件系統在網上公布.ReiserFS 3.6.x(作為 Linux 2.4 一部分 的版本),設計成員相信最好的文件系統是那些能夠有助於創建獨立的共享環境或者命名空間的文件系統。
Xfs: xfs 是一種非常優秀的日誌文件系統,它是 SGI 公司設計的.xfs 被稱為業界最先進 的,最具可升級性的文件系統技術.它是一個全 64 位,快速,穩固的日誌文件系統,
⑼ jsf導航配置文件的問題
我們的是直接配置一個filter.xml文件。希望對你有所幫助。
<!-- filters.xml starts -->
<!-- context-params.xml does not work. put here -->
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.READONLY_AS_DISABLED_FOR_SELECTS</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.ADD_RESOURCE_CLASS</param-name>
<param-value>org.apache.myfaces.renderkit.html.util.DefaultAddResource</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.RESOURCE_VIRTUAL_PATH</param-name>
<param-value>/faces/myFacesExtensionResource</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.CHECK_EXTENSIONS_FILTER</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/模塊一.xml,
/WEB-INF/模塊二.xml, /WEB-INF/模塊三.xml
</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
<param-value>true</param-value>
<!--
<description>
This parameter tells MyFaces if javascript code should be allowed in the
rendered HTML output.
If javascript is allowed, command_link anchors will have javascript code
that submits the corresponding form.
If javascript is not allowed, the state saving info and nested parameters
will be added as url parameters.
Default: "true"
</description>
-->
</context-param>
<context-param>
<param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
<param-value>false</param-value>
<!--
<description>
This parameter tells MyFaces if javascript code should be allowed in the
rendered HTML output.
If javascript is allowed, command_link anchors will have javascript code
that submits the corresponding form.
If javascript is not allowed, the state saving info and nested parameters
will be added as url parameters.
Default: "false"
Setting this param to true should be combined with STATE_SAVING_METHOD "server" for
best results.
This is an EXPERIMENTAL feature. You also have to enable the detector filter/filter mapping below to get
JavaScript detection working.
</description>
-->
</context-param>
<context-param>
<param-name>javax.faces.PARTIAL_STATE_SAVING_METHOD</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.PRETTY_HTML</param-name>
<param-value>true</param-value>
<!--
<description>
If true, rendered HTML code will be formatted, so that it is "human readable".
i.e. additional line separators and whitespace will be written, that do not
influence the HTML code.
Default: "true"
</description>
-->
</context-param>
<context-param>
<param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
<param-value>true</param-value>
<!--
<description>
If true, a javascript function will be rendered that is able to restore the
former vertical scroll on every request. Convenient feature if you have pages
with long lists and you do not want the browser page to always jump to the top
if you trigger a link or button action that stays on the same page.
Default: "false"
</description>
-->
</context-param>
<!-- WelcomeFile Filter -->
<!--
<filter>
<filter-name>WelcomeFile Filter</filter-name>
<filter-class>org.apache.myfaces.webapp.filter.WelcomeFileFilter</filter-class>
<description>
Due to the manner in which the JSP / servlet lifecycle
functions, it is not currently possible to specify default
welcome files for a web application and map them to the
MyFacesServlet. Normally they will be mapped to the
default servlet for the JSP container. To offset this
shortcoming, we utilize a servlet Filter which examines
the URI of all incoming requests.
</description>
</filter>
-->
<!-- JavaScriptDetector Filter -->
<!--
<filter>
<filter-name>javascriptDetector</filter-name>
<filter-class>org.apache.myfaces.webapp.filter.JavaScriptDetectorFilter</filter-class>
</filter>
-->
<filter>
<filter-name>MyFacesExtensionsFilter</filter-name>
<filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
<init-param>
<param-name>uploadMaxFileSize</param-name>
<param-value>200m</param-value>
</init-param>
<init-param>
<param-name>uploadThresholdSize</param-name>
<param-value>100k</param-value>
</init-param>
</filter>
<filter>
<display-name>Ajax4jsf Filter</display-name>
<filter-name>ajax4jsf</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
<init-param>
<param-name>forceparser</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<!-- filters.xml ends -->
⑽ JSPX和JSFF文件類型之間的區別ADF框架內
JSFF用於在自動進稿器JSPX頁面片段被用於常規JSF頁面
你可以有JSFF內ADF taskflows然後將它們包括內部JSPX頁面。
jsff不是一個可運行的目標。如果你想運行此頁應該包括內部JSPX頁面。 一個更重要的一點是,當我們使用ADF任務流,我們使用jsff片段
或者可以說是: -
.jspx頁面JSP / XML表示 ,它是一個獨立的頁面,這意味著它可以在沒有任何支持或基頁運行。 Jdeveloper中11克Release1支持.jspx頁面,但這不是在JDeveloper11克Release2,Release2支持Facelets的意思.jsf( 明確的是,.jsf和.jsff是不一樣的東西)。
而
.jsff(JSF片段)頁是JSF的一個片段(Java伺服器面)頁,有時頁變得過於復雜和大,這是不容易編輯這些頁,在這種情況下,它應該在一些片段來分割。 JSF頁面可以在一些規模較小的頁面片段被打破,以避免在編輯的困難和保持頁面片段不能獨立運行,它需要.jsf(JSF頁)或 .jspx的基礎(JSP / XML)頁面
註: - (.jsf和.jsff是不一樣的東西)
.jsf VS .jspx
JSPX是按照慣例,一個JSP / XML表示,而.jsf是約定一個個小面表示。 無論是「更兼容」,但Facelets的是推薦的方式前進,只要你是在11.1.2或更高版本。
11.1.2.x使用.jsf為默認值(為Faclets),其中作為11.1.1.x使用.jspx
一般的Facelets被認為是更好的性能,因為它是更嚴格的集成與JSF lifcycle,也不需要運行前被編譯
JSPX文檔和Facelets的機器人支持JDeveloper中11克R2和我們equallly支持它們的功能(雙方存在非常小的差異)
JSPX文件在JDeveloper11克R1的唯一選擇
JSFF用於頁面片段,而JSPX用於普通自動進稿器的網頁,在技術上也可以使用JSPX作為頁面片段。 當您使用JDeveloper向導創建一個頁面片段,默認的擴展名將會jsff。
據甲骨文文件「沒有特殊理由使用.jsff較完整的JSF頁面和頁面片段時,你的工作在Application Navigator在JDeveloper之間的快速分化等。」