upload
input.jsp --> action:submit --> result.jsp
其中,action:submit 使用了 FormBean:(可以同时输入文字和上传文件)
public static class myForm extends FormData
{
private String text;
private org.apache.struts.upload.FormFile theFile;
public void setTheFile(org.apache.struts.upload.FormFile theFile)
{
this.theFile = theFile;
}
public org.apache.struts.upload.FormFile getTheFile()
{
return this.theFile;
}
public void setText(String text)
{
this.text = text;
}
public String getText()
{
return this.text;
}
}
input.jsp 中的form定义如下:
<netui:form action="submit" focus="text" enctype="multipart/form-data">
<netui:fileUpload dataSource="{actionForm.theFile}"></netui:fileUpload> <br>
<netui:textBox dataSource="{actionForm.text}" tagId="text"></netui:textBox> <br>
<netui:button value="submit"></netui:button>
</netui:form>
result.jsp中主要代码如下:
<% myForm form = ( myForm )( request.getAttribute("myForm ") );
%>
<br>uploadFile: <%= form.getTheFile()%>
<br>inputText: <%= form.getText()%>
将pageflow单独运行起来可以进行正常处理:
输入:
c:\temp.txt 中国
输出:
uploadFile:temp.txt
inputText:中国
但是,当把这个pageflow作成portlet放在portal上运行时,就不能正常处理:
输入:
c:\temp.txt 中国
输出:
uploadFile:null
inputText:null
-----------------------------------------------------------------
后来,我发现了FormBean的类FormData有一个方法:getMultipartRequestHandler(),通过该方法可以得到一个MultipartRequestHandler,再调用它的getAllElements()方法可以得到一个Hashtable,即
result.jsp中加上语句:
form:<%= (form.getMultipartRequestHandler().getAllElements())%>
可以得到以下 结果:
form:{portlet_1_1{actionForm.text}=[Ljava.lang.String;@1cc06e0, portlet_1_1{actionForm.theFile}=temp.txt}
于是我在result.jsp中改用:
uploadFile:
<%= ( form.getMultipartRequestHandler().getAllElements() ).get("portlet_1_1{actionForm.theFile}")%>
inputText:
<%= ( form.getMultipartRequestHandler().getAllElements() ).get("portlet_1_1{actionForm.text}")%>
可以得到如下的输出结果:
uploadFile:temp.txt
inputText:[Ljava.lang.String;@1cc06e0
为什么在此处得不到输入的字符串?[Ljava.lang.String;@1cc06e0是什么东东?
------
回复此文章 |
如何在Struts 数据库应用程序中实现分页显示
[相关链接]
《JavaWebStudio系列开发工具Visaul Struts版本简介》http://dev.csdn.net/develop/article/28/28871.shtm
《如何实现最简单的Struts程序》http://dev.csdn.net/develop/article/28/28946.shtm
《Struts下拉框的实现》http://dev.csdn.net/develop/article/28/28956.shtm
《Sruts单选框的实现》http://dev.csdn.net/develop/article/29/29042.shtm
《Struts复选框的实现》http://dev.csdn.net/develop/article/29/29043.shtm
《Struts程序各文件之间的关系(1)》http://dev.csdn.net/develop/article/29/29131.shtm
《Struts程序各文件之间的关系(2)》http://dev.csdn.net/develop/article/29/29133.shtm
《如何实现Struts 数据库应用程?据库应用程序中实现分页显示(2)》
《如何在Struts 数据库应用程序中实现记录的删除、更新及链接》
《如何在Struts 数据库应用程序中实现记录的添加》
《如何建立一个带登陆页面的Struts数据库应用程序》
《如何建立一个带登陆页面及角色的Struts数据库应用程序》
上述例子开发环境:Java Web Studio系列开发环境visual strutst版本。
最新JavaWebStudio下载地址:ftp://210.36.64.79/kui
上述例子源程序下载地址:ftp://210.36.64.79/kui
重点提示:JSPOUT属性页的设置是本例唯一与《如何实现Struts 数据库应用程序》中的步骤不同之处,这是本例的核心内容。我们要做的仅仅是在JSPOUT属性页的设置中把“自动分页”选择项选定并输入每页记录数即可。
dbListDAO.java文件:
这里定义一个DAO类,用于实现数据加的查找、删除、更新、添加及生成分页字符串等功能。getPagestr(int ipage)函数用于生成分页字符串,int ipage参数用于转递当前页码。findSQL(String sql,int ipage)函数用于查找数据库数据,String sql参数用于转递SQL查询语句字符串,int ipage参数用于转递当前页码。
。。。。。。。。。。(省略)
public class dbListDAO {
private Connection con;
private int rowCount;
private int pageCount;
private int length;
private String pagestr;
public int getLength() { return (this.length); }
public void setLength(int length) { this.length=length; }
public String getPagestr(int ipage)
{
String strPage="";
if(getLength()>0)
{
strPage+="共";
strPage+=String.valueOf(rowCount);
strPage+="条记录,共";
strPage+=String.valueOf(pageCount);
strPage+="页,当前是第";
strPage+=String.valueOf(ipage);
strPage+="页, ";
int istart,iend;
istart=ipage-5;
if(istart<0) {istart=0;}
iend=istart+10;
if(iend>pageCount) {iend=pageCount;}
istart=iend-10;
if(istart<0) {istart=0;}
for(int i=istart;i<iend;i++)
{
strPage+="<a href='dbListAction.do?action=find&search=search&page=";
strPage+=String.valueOf(i+1);
strPage+="'>";
strPage+=String.valueOf(i+1);
strPage+="</a>";
strPage+=" ";
}
}
this.pagestr=strPage;
return strPage;
}
中间代码与分页无关,固省略。
public Collection findSQL(String sql,int ipage) {
PreparedStatement ps = null;
ResultSet rs = null;
ArrayList list = new ArrayList();
try {
if (con.isClosed()) {
throw new IllegalStateException("error.unexpected");
}
ps = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = ps.executeQu
其中,action:submit 使用了 FormBean:(可以同时输入文字和上传文件)
public static class myForm extends FormData
{
private String text;
private org.apache.struts.upload.FormFile theFile;
public void setTheFile(org.apache.struts.upload.FormFile theFile)
{
this.theFile = theFile;
}
public org.apache.struts.upload.FormFile getTheFile()
{
return this.theFile;
}
public void setText(String text)
{
this.text = text;
}
public String getText()
{
return this.text;
}
}
input.jsp 中的form定义如下:
<netui:form action="submit" focus="text" enctype="multipart/form-data">
<netui:fileUpload dataSource="{actionForm.theFile}"></netui:fileUpload> <br>
<netui:textBox dataSource="{actionForm.text}" tagId="text"></netui:textBox> <br>
<netui:button value="submit"></netui:button>
</netui:form>
result.jsp中主要代码如下:
<% myForm form = ( myForm )( request.getAttribute("myForm ") );
%>
<br>uploadFile: <%= form.getTheFile()%>
<br>inputText: <%= form.getText()%>
将pageflow单独运行起来可以进行正常处理:
输入:
c:\temp.txt 中国
输出:
uploadFile:temp.txt
inputText:中国
但是,当把这个pageflow作成portlet放在portal上运行时,就不能正常处理:
输入:
c:\temp.txt 中国
输出:
uploadFile:null
inputText:null
-----------------------------------------------------------------
后来,我发现了FormBean的类FormData有一个方法:getMultipartRequestHandler(),通过该方法可以得到一个MultipartRequestHandler,再调用它的getAllElements()方法可以得到一个Hashtable,即
result.jsp中加上语句:
form:<%= (form.getMultipartRequestHandler().getAllElements())%>
可以得到以下 结果:
form:{portlet_1_1{actionForm.text}=[Ljava.lang.String;@1cc06e0, portlet_1_1{actionForm.theFile}=temp.txt}
于是我在result.jsp中改用:
uploadFile:
<%= ( form.getMultipartRequestHandler().getAllElements() ).get("portlet_1_1{actionForm.theFile}")%>
inputText:
<%= ( form.getMultipartRequestHandler().getAllElements() ).get("portlet_1_1{actionForm.text}")%>
可以得到如下的输出结果:
uploadFile:temp.txt
inputText:[Ljava.lang.String;@1cc06e0
为什么在此处得不到输入的字符串?[Ljava.lang.String;@1cc06e0是什么东东?
------
回复此文章 |
如何在Struts 数据库应用程序中实现分页显示
[相关链接]
《JavaWebStudio系列开发工具Visaul Struts版本简介》http://dev.csdn.net/develop/article/28/28871.shtm
《如何实现最简单的Struts程序》http://dev.csdn.net/develop/article/28/28946.shtm
《Struts下拉框的实现》http://dev.csdn.net/develop/article/28/28956.shtm
《Sruts单选框的实现》http://dev.csdn.net/develop/article/29/29042.shtm
《Struts复选框的实现》http://dev.csdn.net/develop/article/29/29043.shtm
《Struts程序各文件之间的关系(1)》http://dev.csdn.net/develop/article/29/29131.shtm
《Struts程序各文件之间的关系(2)》http://dev.csdn.net/develop/article/29/29133.shtm
《如何实现Struts 数据库应用程?据库应用程序中实现分页显示(2)》
《如何在Struts 数据库应用程序中实现记录的删除、更新及链接》
《如何在Struts 数据库应用程序中实现记录的添加》
《如何建立一个带登陆页面的Struts数据库应用程序》
《如何建立一个带登陆页面及角色的Struts数据库应用程序》
上述例子开发环境:Java Web Studio系列开发环境visual strutst版本。
最新JavaWebStudio下载地址:ftp://210.36.64.79/kui
上述例子源程序下载地址:ftp://210.36.64.79/kui
重点提示:JSPOUT属性页的设置是本例唯一与《如何实现Struts 数据库应用程序》中的步骤不同之处,这是本例的核心内容。我们要做的仅仅是在JSPOUT属性页的设置中把“自动分页”选择项选定并输入每页记录数即可。
dbListDAO.java文件:
这里定义一个DAO类,用于实现数据加的查找、删除、更新、添加及生成分页字符串等功能。getPagestr(int ipage)函数用于生成分页字符串,int ipage参数用于转递当前页码。findSQL(String sql,int ipage)函数用于查找数据库数据,String sql参数用于转递SQL查询语句字符串,int ipage参数用于转递当前页码。
。。。。。。。。。。(省略)
public class dbListDAO {
private Connection con;
private int rowCount;
private int pageCount;
private int length;
private String pagestr;
public int getLength() { return (this.length); }
public void setLength(int length) { this.length=length; }
public String getPagestr(int ipage)
{
String strPage="";
if(getLength()>0)
{
strPage+="共";
strPage+=String.valueOf(rowCount);
strPage+="条记录,共";
strPage+=String.valueOf(pageCount);
strPage+="页,当前是第";
strPage+=String.valueOf(ipage);
strPage+="页, ";
int istart,iend;
istart=ipage-5;
if(istart<0) {istart=0;}
iend=istart+10;
if(iend>pageCount) {iend=pageCount;}
istart=iend-10;
if(istart<0) {istart=0;}
for(int i=istart;i<iend;i++)
{
strPage+="<a href='dbListAction.do?action=find&search=search&page=";
strPage+=String.valueOf(i+1);
strPage+="'>";
strPage+=String.valueOf(i+1);
strPage+="</a>";
strPage+=" ";
}
}
this.pagestr=strPage;
return strPage;
}
中间代码与分页无关,固省略。
public Collection findSQL(String sql,int ipage) {
PreparedStatement ps = null;
ResultSet rs = null;
ArrayList list = new ArrayList();
try {
if (con.isClosed()) {
throw new IllegalStateException("error.unexpected");
}
ps = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = ps.executeQu
hofman
2005-11-19 22:25:29
评论:0
阅读:1444
引用:0
