jsp页面:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%@ page import="java.sql.*" %>
<html>
  <head>
    <title>寻找问题</title>
  </head>
  <body> 
    <form action="getmeno" method="post">
    请输入你要查询的答案:<input type="text" name="a_answer" ><br>
   <input type="submit" value="查询">
   <input type="reset" value="重置"> 
  </form>
  </body>
</html>getmeno.java
package com.biz;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import org.apache.struts2.dispatcher.mapper.ActionMapping;import com.workservice;
import com.opensymphony.xwork2.ActionSupport;
public class getmeno extends ActionSupport {
private static final long serialVersionUID = 2865314201481831022L;
public String Query(String a_answer){
    String result="";
Connection conn =null;
Statement stat = null;
ResultSet rs1=null;    
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@10.1.3.223:1521:TEA";
String user = "system";
String password = "123456";
conn = DriverManager.getConnection(url,user,password );
stat = conn.createStatement();
String sql1="select * from ques_left";
rs1= stat.executeQuery(sql1);
String w,c;
while(rs1.next())
{
w=rs1.getString("answer");
c = rs1.getString("meno");
result=w;
         if (a_answer.equals(w)) 
{  
          return c;
  }
}

if(rs1!=null) rs1.close();
if(stat!=null) stat.close();
if(conn!=null) conn.close();
}
catch (Exception e) 

System.err.println("query error");
return null;
}
return null;
}}

解决方案 »

  1.   

    想根据输入的值查数据吧,你SQL要加条件啊  .
      

  2.   

    我看明白了,你现在是页面上输入的a_answer,然后在结果集合里面循环判断和w=rs1.getString("answer");取出来的判断相等,然后返回这条相等信息的另外一个字段, 你的意思是要把c这个结果返回给客户看还是要干什么?如果返回给客户看直接设置到request范围里面然后到页面用ER表达式取就完事了啊?有撒问题?你把要实现什么效果说清楚啊
      

  3.   

    public String Query(String a_answer) struts的action的方法通常都不用参数,
    要想用页面传来的a_answer;
    String a_answer;
    然后加上它的set  get 方法
      

  4.   

    现在我转为在JSP里面实现刚才的功能,写了如下代码:<%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="java.sql.*"%>
    <html>
    <body>
    <%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    String url="jdbc:oracle:thin:@10.1.3.223:1521:TEA";
    String user="system";
    String password="123456";
    Connection conn = DriverManager.getConnection(url,user,password );
    Statement stmt=conn.createStatement
    (ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    String sql="select * from ques_left where answer='"+request.getParameter("a_answer")+"'";
    ResultSet rs=stmt.executeQuery(sql);
    String w,c;     
    while(rs.next()) {w=rs.getString("answer");
    if(request.getParameter("a_answer").equals(rs.getString("answer")))
    %>
    您查询的问题为:<%=rs.getString("meno")%>
    <%}%>
    <%rs.close();
    stmt.close();
    conn.close();%>
    </body>
    </html>
    为什么条件语句没有什么用,返回的是所有meno字段里的内容啊?
      

  5.   

    回复于:2009-08-27 13:24:19我看明白了,你现在是页面上输入的a_answer,然后在结果集合里面循环判断和w=rs1.getString("answer");取出来的判断相等,然后返回这条相等信息的另外一个字段, 你的意思是要把c这个结果返回给客户看还是要干什么?如果返回给客户看直接设置到request范围里面然后到页面用ER表达式取就完事了啊?有撒问题?你把要实现什么效果说清楚啊 
    我想实现的就是在页面上输入要查询的问题的答案,然后输出的是答案所对应的问题!
      

  6.   


    while(rs.next()) {w=rs.getString("answer"); 
    if(request.getParameter("a_answer").equals(rs.getString("answer"))) 
    %> 
    您查询的问题为: <%=rs.getString("meno")%> 
    <%}%> 
    如果要显示答案在这个equals如果判断相等了你要把循环停止掉啊,你这样当然不行,还有你是不是在学Jsp Servlet啊,不要在页面上写JAVA代码啊,在action或者是servlet里面写,然后直接把想要的结果放到request范围里面然后直接在页面上用标签取定义一个变量meno1 然后equals相等后 meno1 =rs.getString("meno");赋值,然后break;循环跳出,不要循环了,然后在 <%=meno1 > 就可以了。。建议不要在页面写JAVA脚本代码
      

  7.   


    while(rs.next()) {w=rs.getString("answer"); 
    if(request.getParameter("a_answer").equals(rs.getString("answer"))) 
    %> 
    您查询的问题为: <%=rs.getString("meno")%> 
    <%}%> 
    如果要显示答案在这个equals如果判断相等了你要把循环停止掉啊,你这样当然不行,还有你是不是在学Jsp Servlet啊,不要在页面上写JAVA代码啊,在action或者是servlet里面写,然后直接把想要的结果放到request范围里面然后直接在页面上用标签取定义一个变量meno1 然后equals相等后 meno1 =rs.getString("meno");赋值,然后break;循环跳出,不要循环了,然后在 <%=meno1 > 就可以了。。建议不要在页面写JAVA脚本代码
      

  8.   

    能帮我把这个例子写完吗?用action来写,真的不会,试了好多的方法了!!
      

  9.   

    struts-xml怎么配置啊?
    <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE struts PUBLIC
      "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
      "http://struts.apache.org/dtds/struts-2.0.dtd">
      <struts>
      <package name="comm.biz" namespace="/mystruts"
      extends="struts-default">
      <action name="daan" class="com.biz.daan" method="doGet">
         <interceptor-ref name ="ystStack" />
         <interceptor-ref name="basicStack"/>
         <result type="redirect">/daan</result>
         </action>
      
      </package>
      </struts>