gpt4 book ai didi

java - 如何从 inputtextarea 下载包含内容的 xml 文件?

转载 作者:太空宇宙 更新时间:2023-11-04 06:25:09 25 4
gpt4 key购买 nike

我正在尝试使用 primefaces 组件下载 xml 文件。这部分工作正常,但我的页面上有一个 inputtextarea,我希望将我在 inputtextarea 中编写的文本写入下载的 xml 文件中。开发人员可以帮助我吗?谢谢。

我的观点:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">


<h:head>
<title>File Download</title>
</h:head>
<h:body>
<p:dialog modal="true" widgetVar="statusDialog" header="Status" draggable="false" closable="false" resizable="false">
<p:graphicImage value="/images/loading11.gif" />
</p:dialog>

<p:inputTextarea id ="mytheinput" value="#{fileDownloadView.mytext}" cols="115" autoResize="true" rows="20" />

<h:form>
<p:commandButton value="Download" ajax="false" onclick="PrimeFaces.monitorDownload(start, stop);" icon="ui-icon-arrowthick-1-s">
<p:fileDownload value="#{fileDownloadView.file}" />
</p:commandButton>
</h:form>

<script type="text/javascript">
function start() {
PF('statusDialog').show();
}

function stop() {
PF('statusDialog').hide();
}
</script>


</h:body>
</html>

我的 bean :

@ManagedBean(name="fileDownloadView")
public class FileDownloadView {

private StreamedContent file;
private String mytext;

public FileDownloadView() {
InputStream stream = ((ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext()).getResourceAsStream(mytext);
file = new DefaultStreamedContent(stream, "xml", "yourfile.xml");
}

public StreamedContent getFile() {
return file;
}

public String getMytext() {
return mytext;
}

}

最佳答案

一些评论

  1. 您的 p:inputTextarea 应位于 h:form 元素内
  2. bean 的 mytext 属性必须有一个 getter(好的)和一个 setter(缺少!)
  3. 您的InputStream代码来自PF示例,该示例返回资源图片文件的内容。您只想从字符串创建流!问问自己 How do I turn a String into a Stream in java?
  4. 由于文本的变化,InputStream 必须动态创建(即在 getFile 内部而不是构造函数中)

一点帮助

public StreamedContent getFile() {
InputStream stream = new ByteArrayInputStream( mytext.getBytes() );
StreamedContent file = new DefaultStreamedContent(stream, "xml", "yourfile.xml");
return file;
}

public String getMytext() {
return mytext;
}

public void setMytext(String mytext) {
this.mytext = mytext;
}

关于java - 如何从 inputtextarea 下载包含内容的 xml 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26889443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com