问题描述
- 怎么把service层的一个model类型的数组通过controller层传递给一个JSP并显示出来
-
如题,我的controller里的函数是:
@RequestMapping("/storelogin.do")//查询到请求映射规则
public String Swelcome(@RequestParam(value="dsid")String did,@RequestParam(value="dsps")String dsps,ModelMap model, HttpServletRequest request,
HttpServletResponse response) throws SQLException//获取视图层参数
{
int flag;
Sdata[] orders=new Sdata[100];
flag=software.work.service.Sservice.LoginDAO(did,dsps);//调用业务逻辑层函数
orders=software.work.service.Sservice.ShowOrders(dsid);
if(flag==0)return "loginerror";//用户名密码输入错误
else
{
dsid=software.work.model.Sdata.getDsid();//从模型中读取数据
model.put("dsid", dsid);;//将模型数据传入渲染视图
request.getSession().setAttribute("orders",orders);
return "OrderQuery";//返回逻辑视图名,加上。jsp后缀
}
}
我的service层里的函数是:
public static Sdata[] ShowOrders(String dsid)//从model中数据重新导回数据库
{
String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dburl = "jdbc:sqlserver://localhost:1433;DatabaseName=B2C";
String user="ordertester";
String password2="12345";
Sdata[] orders=new Sdata[100];
int i;
try{
Class.forName(driver); //加载数据库驱动程序
Connection conn = DriverManager.getConnection(dburl,user,password2);//创建数据库连接对象
String sql="select * from Orders,OrderDetail where Orders.O_id=OrderDetail.O_id and OrderDetail.DS_id="+dsid;
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
i=0;
if(rs.next())
{
while(rs.next()){
orders[i].setOtype(rs.getString("O_type"));
orders[i].setOall(rs.getString("O_all"));
orders[i].setOdate(rs.getString("O_data"));
orders[i].setCid(rs.getString("O_id"));
orders[i].setCid(rs.getString("C_id"));
orders[i].setOdcount(rs.getInt("Od_id"));
orders[i].setOdprice(rs.getFloat("OD_price"));
orders[i].setMedid(rs.getString("Med_id"));
i++;} stmt.close(); conn.close(); return orders; } else { stmt.close(); conn.close(); return null; } }catch(ClassNotFoundException e1){}catch(SQLException e2){} return null; } 请问JSP该怎么写啊
时间: 2024-08-29 05:35:48