我定义了一个sturts标签,用于显示select下拉列表初始化的内容,下面还有两个文本框和提交按钮,可是在执行时,页面上只显示了select的内容,文本框和提交按钮都没有显示出来,而且select中的内容也显示得不完全,因为select的内容是从数据库读出的,可是页面上select中的记录数少于数据库中的记录数,这是为什么?以下是我的自定义标签:
package tag;import java.util.Iterator;import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;import com.Hibernate.SessionFactory;
import com.jingpin.Courseinfo;
import com.jingpin.Kindinfo;public class InitListTag extends TagSupport {
private Log log = LogFactory.getLog(this.getClass().getName());
public int doEndTag() throws JspException{
JspWriter out=pageContext.getOut();
try{
out.println("<select size=\"8\" name=\"select1\" id=\"select1\" style=\"width:200\" ondblclick=\"add();\" multiple=\"multiple\">");
Session session=SessionFactory.currentSession();
Transaction tx=session.beginTransaction();
Query query=session.createQuery("from Courseinfo c,Kindinfo k where c.kindType=k.kindType and c.kindSecond=k.kindSecond order by c.kindSecond");
for(Iterator it=query.iterate();it.hasNext();){
Object[] objs=(Object[])it.next();
Courseinfo cinfo=(Courseinfo)objs[0];
Kindinfo kinfo=(Kindinfo)objs[1];
String str1=cinfo.getCourseId().toString();
String str2=cinfo.getCourseName();
String str3=cinfo.getSchoolName();
String str4=cinfo.getCourseDutyName();
String str5=cinfo.getKindFirst();
String str6=kinfo.getKindFirstName();
String str7=cinfo.getKindSecond();
String str8=kinfo.getKindSecondName();
out.println("<option value =\""+str1+"\">"+str2+","+str3+","+str4+","+str5+","+str6+","+str7+","+str8+"</option>");
}
out.println("</select>");
tx.commit();
SessionFactory.closeSession();
}catch(Exception e){
throw new JspTagException("IOException:" + e.toString());
}
return EVAL_PAGE;
}
}
注:我曾经以为是返回值有问题,但是将返回值改为return super.doEndTag();之后还是不对。
急死我了
package tag;import java.util.Iterator;import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;import com.Hibernate.SessionFactory;
import com.jingpin.Courseinfo;
import com.jingpin.Kindinfo;public class InitListTag extends TagSupport {
private Log log = LogFactory.getLog(this.getClass().getName());
public int doEndTag() throws JspException{
JspWriter out=pageContext.getOut();
try{
out.println("<select size=\"8\" name=\"select1\" id=\"select1\" style=\"width:200\" ondblclick=\"add();\" multiple=\"multiple\">");
Session session=SessionFactory.currentSession();
Transaction tx=session.beginTransaction();
Query query=session.createQuery("from Courseinfo c,Kindinfo k where c.kindType=k.kindType and c.kindSecond=k.kindSecond order by c.kindSecond");
for(Iterator it=query.iterate();it.hasNext();){
Object[] objs=(Object[])it.next();
Courseinfo cinfo=(Courseinfo)objs[0];
Kindinfo kinfo=(Kindinfo)objs[1];
String str1=cinfo.getCourseId().toString();
String str2=cinfo.getCourseName();
String str3=cinfo.getSchoolName();
String str4=cinfo.getCourseDutyName();
String str5=cinfo.getKindFirst();
String str6=kinfo.getKindFirstName();
String str7=cinfo.getKindSecond();
String str8=kinfo.getKindSecondName();
out.println("<option value =\""+str1+"\">"+str2+","+str3+","+str4+","+str5+","+str6+","+str7+","+str8+"</option>");
}
out.println("</select>");
tx.commit();
SessionFactory.closeSession();
}catch(Exception e){
throw new JspTagException("IOException:" + e.toString());
}
return EVAL_PAGE;
}
}
注:我曾经以为是返回值有问题,但是将返回值改为return super.doEndTag();之后还是不对。
急死我了
解决方案 »
- jfreechart折线图如何让用不到的横坐标不显示?
- Structs 中 Action 的疑问
- 如何让表格水平居中的同时还能控制表格在垂直上的位置?
- java 文本比较类似 SVN代码比较的功能
- JSP中下拉框的问题
- TOMCAT5.5.15不支持jdk6,有没有牛人能解决啊
- JSP+AJAX 返回数据延时的错误问题-- AJAX 返回后 要多加alert("弹出") 然后确定才能显示准确的数据.不知道是什么问题>?
- jsp页面如何获得服务器的日期、时间?
- 连结access数据库的问题,很简单的,大家帮我看看。谢谢了
- web jsp jstl el 遍历 Map<Object.List<Object>> 如何遍历
- commons-fileupload-1.1 到upload.parseRequest(request)时结果有时怎么null !!!请教
- javabean怎样访问WEB-INF目录下的文件?
另外,在你的taglib的source中
catch(Exception e){
e.printStackTrace();
//throw new JspTag....
}
不知道你的web server是什么,如果是tomcat,stacktrace应该会被打在tomcat的console上。
希望对你有帮助。一个建议:commit()和closeSession()应该写在finally子句里,否则如果try中出了错,没法结束活动的DB对话。
要找到问题的话,你要用一个try catch把你的jsp的代码全都包起来,应该能抓到exception,然后把exception打出来。<%
try{
%>...你的JSP的内容<%
}catch(Exception e){
e.printStackTrace();
}
%>