站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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);%>考核员身份登录的,以下是您需要录入的数据。另外,您还可进行以下工作:


">注销&nbsp;&nbsp;&nbsp;
">查询

&nbsp;&nbsp;&nbsp;





<% 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>

<%
out.print(row);
}

} %>

<input type="reset" value="重写" name="reset" />
<input type="submit" value="提交" name="writein" /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;


</form>

</body>



为什么还没有来帮帮我啊??
着急啊


我没细看呢,收藏一下.
我估计跟bean的作用域有关系.



你代码是没问题的,关键你要搞清楚的是发送请求的问题
比如,当你第一次运行的时候,并没有获得数据库里的内容,所以页面显示的是NULL
当你刷新的时候其实就相当于第二次的请求,这个时候各个参数里有东西了,当然也就显示出来了。我的想法是做一个欢迎页面,使程序在这个页面运行起来。做个登陆按钮,点它时转到另一个面页,这个面页用来显示数据。这样不就好了……


↑返回目录
前一篇: [求助]如何让一个div固定,不随滚动条滚动,并且不闪烁
后一篇: 向大家求救..关于servlet的问题