风听雨阁 2009-05-18 16:40
浏览 345
已采纳

jsp中使用JavaBean出现“引用类不可用”

do_upload.jsp
[code="java"]<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB2312"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page import="org.apache.commons.fileupload.servlet.*"%>
<%@ page import="org.apache.commons.fileupload.disk.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="picDeal.*" %>

/jsp:useBean
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">




文件上传


上传中.....
<%
String uploadPath=application.getRealPath("/upload");
String picName=null;
int width=0,height=0;
//目标文件夹的路径必须使用绝对路径,不能用相对路径
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if(isMultipart==true){
try{
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List items = upload.parseRequest(request);//得到所有的文件
Iterator itr = items.iterator();
while(itr.hasNext()){//依次处理每个文件
FileItem item=(FileItem)itr.next();
String fileName=item.getName();//获得文件名,包括路径
if(fileName!=null)
{
File fullFile=new File(item.getName());
picName=fullFile.getName();
File savedFile=new File(uploadPath,fullFile.getName());
item.write(savedFile);
}
}
out.println("upload succeed!");
out.println("上传的图片如下:");
//分析图片, 获取图片的信息
pic.setData(picName);
session.setAttribute("picture",pic);
%>











上传的图片如下:
>


<%
}
catch(Exception e){
e.printStackTrace();
out.print("failed!");
}
}
else{
out.println("the enctype must be multipart/form-data");
}
%>


[/code]
PicRgb

[code="java"]package picDeal;
import java.awt.*;
import java.awt.image.*;
import java.io.*;

import javax.imageio.*;

public class PicRgb {
private int []rData;
private int []gData;
private int []bData;
private int width;
private int height;
//分析图片,参数为图片的名字
public PicRgb()
{

}
public void setData(String name){
    Image image=null;
    try{
    File sourceimage = new File("upload/"+name);
    image=ImageIO.read(sourceimage);
    }
    catch(IOException e){
    }
    //读取图像的高度&宽度
    this.width=image.getWidth(null);
    this.height=image.getHeight(null);
    System.out.println(width);
    System.out.println(height);
    //读取图片像素信息
    Image im=Toolkit.getDefaultToolkit().getImage("upload/"+name);
    this.rData=new int[256];
    this.gData=new int[256];
    this.bData=new int[256];
    int []pixels=new int[width*height];
    try{
        PixelGrabber pg=new PixelGrabber(im,0,0,width,height,pixels,0,width);
        pg.grabPixels();
    }catch(InterruptedException e){
        e.printStackTrace();
    }
    ColorModel cm=ColorModel.getRGBdefault();
    int red,green,blue;
    for(int i=0;i<width*height;i++){
        red=cm.getRed(pixels[i]);
        this.rData[red]++;
        green=cm.getGreen(pixels[i]);
        this.gData[green]++;
        blue=cm.getBlue(pixels[i]);
        this.bData[blue]++;
    }
}

public void setRData(int[] r)
{
this.rData=r;
}
public void setGData(int[] g)
{
this.gData=g;
}
public void setBData(int[] b)
{
this.bData=b;
}
public void setWidth(int w)
{
this.width=w;
}
public void setHeight(int h)
{
this.height=h;
}
public int getWidth()
{
return this.width;
}
public int getHeight()
{
return this.height;
}
public int[] getRData()
{
return this.rData;
}
public int[] getGData()
{
return this.gData;
}
public int[] getBData()
{
return this.bData;
}
}
[/code]

当使用up_load.jsp页面时 出现错误
提示 useBean使用的类不可用……弄了一下午,头都大了 - -

  • 写回答

1条回答 默认 最新

  • iteye_8326 2009-05-18 18:39
    关注



    /jsp:useBean 你的pic 这个类不可用。因为你还加上
    [code="java"]/bean:define[/code]

    其中: PicRgb 这个类的方法名要不能带参数,默认为getXXX(). 其中XXX的第一个单词要大写。因为这是jsp:useBean 约定写法。

    demo.jsp:
    [code="java"]/jsp:useBean
    /bean:define


    insert

    id: /html:text
    sname: /html:text
    price: /html:text
    acount: /html:text
    html:submitsubmit/html:submit
    /html:form

    <table border='1'>
            <tr>
                <td>
                    id
                </td>
                <td>
                    sname
                </td>
                <td>
                    price
                </td>
                <td>
                    acount
                </td>
            </tr>
            <logic:iterate id="stock" name="stockList">
                <tr>
                    <td>
                        <bean:write name="stock" property="id" />
                    </td>
                    <td>
                        <bean:write name="stock" property="sname" />
                    </td>
                    <td>
                        <bean:write name="stock" property="price" />
                    </td>
                    <td>
                        <bean:write name="stock" property="acount" />
                    </td>
                </tr>
            </logic:iterate>
        </table>
    </center>
    


    /html:html
    [/code]
    [code="java"]public class StockDao {
    private Access access;
    // private Stock stock;
    private ResultSet rs;
    private Connection conn;
    public static void main(String[] args) {
    System.out.println(new StockDao().getFindAllStock());

    }
    
    public List getFindAllStock(){
        access=new Access();
        List list = new ArrayList();
        String sql="select * from stock";
        System.out.println(sql);
        try {
            rs=access.query(sql);
            while(rs.next()){
                Stock stock=new Stock();
                stock.setId(rs.getString(1));
                stock.setSname(rs.getString(2));
                stock.setPrice(rs.getString(3));
                stock.setAcount(rs.getString(4));
                list.add(stock);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    
        return list;
    }[/code]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!