当前页面: 开发资料首页 → JSP 专题 → 需要刷新才能显示数据
需要刷新才能显示数据
摘要: 需要刷新才能显示数据
第一次写了一个小程序
写了一个bean从数据库里取出数据存放在一个vector中,然后
在页面给bean赋值,输出取出的数据
可是不知道为什么进入页面取的数据全是null
需要刷新一遍才会显示正确的数据
之后刷新就不会变了
请大家帮帮忙,谢谢啦
新手没分,请见谅。
刚才以为自己没分
现在加了50分
源码贴出来啊
你第一次进入页面是不是没有给bean赋值,所以查不出数据 输出全是null
而刷新后可能哪里给bean赋值了,但怎么刷新都是同样的参数,肯定得到同样的结果啦
先把源码贴出来看看吧
看一下代码就知道了
这个是bean的代码
import java.util.*;
import java.sql.*;
public class Writein
{ public String provider;
public Vector owner=new Vector();
public Vector target=new Vector();
public Vector reason=new Vector();
public Vector scale=new Vector();
public int row;
int code; //用来返回可否录入消息的代码。
String db,
dbuser,
dbpass;
Connection con;
Statement sql;
public ResultSet rs;
public Writein()
{//加载驱动:
try
{Class.forName("com.mysql.jdbc.Driver");
}
catch (ClassNotFoundException e)
{
}
}
public String getProvider()
{//录入单位的名称
return provider;
}
public void setProvider(String provider)
{
this.provider = provider;
}
public Vector getOwner()
{//被评分的单位
return owner;
}
public void setOwner(Vector owner)
{
this.owner = owner;
}
public Vector getTarget()
{//指标名
return target;
}
public void setTarget(Vector target)
{
this.target = target;
}
public int getRow()
{//指标的数目,表现为表格的行数
return row;
}
public void setRow(int row)
{
row=row;
}
public Vector getReason()
{//评分依据
return reason;
}
public void setReason(Vector reason)
{
this.reason = reason;
}
public Vector getScale()
{//权重
return scale;
}
public void setScale(Vector scale)
{
this.scale = scale;
}
public int getcode()//查询录入状态代码
{ try
{ String db="jdbc:mysql://localhost:3306/aecc",
dbuser="root",
dbpass="952141",
condition;
owner.clear();
target.clear();
reason.clear();
scale.clear();
con=DriverManager.getConnection(db,dbuser,dbpass);
sql=con.createStatement();
condition="SELECT taga FROM r where provider="+"'"+provider+"'";
rs=sql.executeQuery(condition);
rs.first();
if (rs.getInt(1)==0)
{condition="select tag from r where provider="+"'"+provider+"'";
rs=sql.executeQuery(condition);
rs.first();
if (rs.getInt(1)==0)
{
condition="select owner,target,reason,scale from r where provider="+"'"+provider+"'";
rs=sql.executeQuery(condition);
/** float total[]=new float[20];**/
row=0;
while(rs.next())
{
row++;
owner.addElement(rs.getString(1));
target.addElement(rs.getString(2));
reason.addElement(rs.getString(3));
scale.addElement(rs.getString(4));
}
code=0; /** "本月的考核数据正在统计"; **/ }
else
{ code=1;/**"本月数据录入已完成。现在只能查看"; **/
}
}
else
{ code=2;/**"本月尚未开始录入考核数据或所有数据已汇总,暂时无法进行录入"; **/
}
sql.close();
con.close();
return code;
}
catch(SQLException e)
{
code=3;/**"数据库读取出现错误!";**/
return code;
}
}
这个是jsp页面的程序
<%@page contentType="text/html;charset=gb2312"%>
<%@page pageEncoding="gb2312"%>
<%@ page import="java.sql.*" %>
<%@page import="java.util.*"%>
<%@ page import="aecc.Login" %>
<% request.setCharacterEncoding("GB2312");%>
<% //如果客户直接进入该页面将被转向登录页面。
if(session.isNew())
{
response.sendRedirect("index.jsp");
}
//如果没有成功登录将被转向登录页面
String success=login.getSuccess();
if(success==null)
{
success="";
}
if(!(success.equals("ok")))
{
response.sendRedirect("index.jsp");
}
%>
<head>
</head>
<body>
<% String logname=login.getLogname();
int code;
String provider=login.getDepartment();
/** String provider=department;**/
Vector owner;
Vector target;
Vector reason;
Vector scale;
Vector score;
int row;
/** ResultSet rs; **/
%>
你好,<%out.print(logname);%>,
你现在是以<%out.print(provider);%>考核员身份登录的,以下是您需要录入的数据。另外,您还可进行以下工作:
">注销
">查询
<% row=write.getRow();
owner=write.getOwner();
target=write.getTarget();
reason=write.getReason();
scale=write.getScale();
code=write.getcode();
out.print(provider);
switch (code)
{case 1:
out.print("已经录入。");
break;
case 2:
out.print("未开始。");
break;
case 3:
out.print("数据库。");
break;
default:
out.print("可以录入。");
out.print(row);
String a=owner.toString();
out.print (a);
%>
<%String str=response.encodeURL("process.jsp");%>
<form method="post" action="<%=str%>">
<table border="1" width="750" id="table1" style="border-collapse: collapse" bordercolor="#000000">
<tr>
<td width="150">单位名称</td>
<td width="150">指标名</td>
<td width="250">评分标准</td>
<td width="150">权重</td>
<td width="180">分数</td>
</tr>
</table>
<%out.print(row);
for (int i=0;i
<table border="1" width="750" style="border-collapse: collapse" bordercolor="#000000">
<tr>
<td width="150"><%=owner.get(i)%> </td>
<td width="150"><%=target.get(i)%> </td>
<td width="250"><%=reason.get(i)%> </td>
<td width="150"><%=scale.get(i)%> </td>
<td width="50"><input type="int" name="total[row]" ></td>
</tr>
</table>
|