我这样写会报错,高手改一下,就是在JSP的<html:form>里输入news_id,查询显示就行了。
接口那些是这么写的 public List searchNews(); 
具体的。。SqlDAOImpl:
public List searchNews() {
List result_id = new ArrayList();
//创建一个Session对象
Session session = MySessionFactory.currentSession();
//定义一个Transaction对象
Transaction ts = null;
try{
String HQL = "from NewsForm as a where a.news_id=?";
//创建一个Query查询对象
Query query = session.createQuery(HQL);
//创建一个Transaction对象
ts = session.beginTransaction();
//执行查询,取得查询结果
result_id = query.list();
//提交事务
ts.commit();
if (!Hibernate.isInitialized(result_id))Hibernate.initialize(result_id);
}catch(Exception ex){
//回滚事务
ts.rollback();
System.out.println("【系统错误】在查询持久化对象时出错,原因是:");
ex.printStackTrace();
}finally{
//关闭Session对象
MySessionFactory.closeSession();
}
return result_id;
}
action:......
//存放会员列表数据
List<NewsForm> newsList_id;.........
public ActionForward showid(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
try {
NewsForm model = (NewsForm) form;
if (((NewsForm) form).getNews_id().trim().equals(""))
throw new Exception("编号不允许为空!");
else if (((NewsForm) form).getNews_id().length() > 4)
throw new Exception("编号长度最长为4位!");
else {
newsList_id = service.searchNews();
if (newsList_id.size() > 0) {
request.setAttribute("result_id", newsList_id);
request.setAttribute("info", "记录数:"
+ String.valueOf(newsList_id.size()));
} else
request.setAttribute("info", "没有符合要求的记录!"); }
} catch (Exception e) {
request.setAttribute("info", e.getMessage());
}
return mapping.findForward("search");
}

解决方案 »

  1.   

    详细点么~~ 
    报什么错 贴出来啊! 
    jsp页面贴出来 !
      

  2.   

    哦,我看错了,HQL没写完,参数也没传递,现在的问题 就是 JSP不显示数据,
    JSP代码:<c:set var="result_id" value="${requestScope.result_id}" />
    <table width="100%">
    <tr align="center">
    <td>
    <c:out value="${requestScope.info}" />
    </td>
    <td>
    <c:out value="${requestScope.delete}" />
    </td>
    </tr>
    <tr align="center">
    <td>
    <c:if test="${requestScope.newsList_id!=null}">
    <table border="1">
    <tr align="center">
    <td>
    编号
    <input type="hidden" name="news_detail" value="${row[4]}">
    </td>
    <td>
    主题
    </td>
    <td>
    作者
    </td>
    <td>
    日期
    </td>
    <td align=center colspan=4>
    操作
    </td>
    </tr>
    <c:forEach items="${requestScope.newsList_id}" var="row"> <tr align="center">
    <td>
    ${row[0]}
    </td>
    <td>
    ${row[1]}
    </td>
    <td>
    ${row[2]}
    </td>
    <td>
    ${row[3]}
    </td>
      

  3.   

    KEY写错了。。不是newsList
    <c:if test="${requestScope.newsList_id!=null}">
    result
      

  4.   

    、从你的代码来看。。在查询的时候 动态参数没有设置进去
     try{
                String HQL = "from NewsForm as a where a.news_id=?"; 
                //创建一个Query查询对象
                Query query = session.createQuery(HQL);            ?号参数没有设置值。。            //创建一个Transaction对象            
                ts = session.beginTransaction();
                //执行查询,取得查询结果
                result_id = query.list();
                //提交事务
                ts.commit();
      

  5.   

    request.setAttribute("result_id", newsList_id);
                        request.setAttribute("info", "记录数:"
                                + String.valueOf(newsList_id.size()));result_id和info才是你request中存放数据的属性
    页面获取有问题