-1

私は MVC フレームワークを使用しています。jsp ページで、リストに (pickdate/picktime) と (dropdate/droptime) の 2 つのオプション (pickup/drop) があり、(pickdate/picktime) と (dropdate) を挿入しようとしました/droptime) リスト ボックスからの選択に従って、ユーザーがピックアップを選択すると (pickdate/picktime) がデータベースに挿入され、その逆も同様ですが、機能しません。どこが間違っているのか教えてください。

<jsp:useBean id="MrBean" class="pack.java.adminmodel"/>
<jsp:setProperty name ="MrBean" property="employeid" param="sid"/>
<jsp:setProperty name ="MrBean" property="supervisor" param="ssup"/>
<jsp:setProperty name ="MrBean" property="department" param="sdept"/>
<jsp:setProperty name ="MrBean" property="list" param="mylist"/>
<jsp:setProperty name ="MrBean" property="pickdate" param="pte"/>
<jsp:setProperty name ="MrBean" property="picktime" param="ptm"/>
<jsp:setProperty name ="MrBean" property="dropdate" param="dte"/>
<jsp:setProperty name ="MrBean" property="droptime" param="dtm"/>
<%@ taglib uri="/WEB-INF/jsp2/taglib2.tld" prefix="easy" %>
<html>

<body >
    <form method = "post">
        <H1>Please enter the following details below.</H1>
        <table border="1" align="left" cellpadding ="30" cellspacing="5">
            <tr>
                <td align="left">
                    Employid <input type="text" name="sid" /> 
                    Supervisor <input type="text" name="ssup" />
                    Department <input type="text" name="sdept" />

                        <label>Select your option</label>
                        <select id="myList" name="mylist">
                   <option value="1"  >Pickup</option>
                  <option value="2" >Drop</option>
                        </select>

                    Pickup date <input type="date" name="pte" />
                    Pickup time <input type="time"  name="ptm" /></br>

                    Drop date <input type="date" name="dte" />
                    Drop time <input type="time"  name="dtm" /></br>

                    <input type="submit" name="submit" value="submit" /></br>
                </td>
            </tr>
        </table>
        <table border="1" align="right" cellpadding ="30" cellspacing="2">
            <tr>
                <td align="left">
                    <a href="myprojectallrequest.jsp">View all requests</a></br>
                    <a href="myprojectallrequest.jsp">View pending requests</a>
                </td>
            </tr>
        </table>

<%
String aa=request.getParameter("submit");

if(aa!=null)
{%>
<easy:myTag1/>
<%
 }
 %>
    </form>
 </body>
</html>

モデルクラスです。

package pack.java;
import java.io.*;
import java.lang.*;

 public class adminmodel
{
public static Integer employeid;
public static String supervisor;
public static String department;
public static String list;
public static String pickdate;
public static String picktime;
public static String dropdate;
public static String droptime;

public void setEmployeid  ( Integer emp)
{
this.employeid=emp;
}
public Integer getEmployeid()
   {
return employeid;
  }

    public void setSupervisor (String s)
  {
this.supervisor=s;
  }
public String getSupervisor()
  {
return supervisor;
   }

      public void setDepartment (String d)
         {
this.department=d;
    }
public String getDepartment()
    {
return department;
   }


  public void setList (String pp)
   {
this.list=pp;
 }
public String getList()
 {
return list;
  }


  public void setPickdate (String p)
{
this.pickdate=p;
 }
public String getPickdate()
{
return pickdate;
}

public void setPicktime (String pt)
 {
this.picktime=pt;
}
public String getPicktime()
{
return picktime;
}

public void setDropdate (String dd)
{
this.dropdate=dd;
}
public String getDropdate()
{
return dropdate;
}

public void setDroptime (String dt)
 {
this.droptime=dt;
} 
public String getDroptime()
{
return droptime;
}

}

これはコントローラークラスです

 package pack.java;
   import  pack.java.adminmodel;
   import java.io.*;
   import java.lang.*;
   import java.sql.*;
   import javax.servlet.http.*;
   import javax.servlet.*;
   import javax.servlet.jsp.*;
  import javax.servlet.jsp.tagext.*;

   public class admincontrol extends TagSupport
  {
HttpServletRequest request;
HttpServletResponse response;

public int doStartTag() throws JspException
  {
    request=(HttpServletRequest)pageContext.getRequest();
    response=(HttpServletResponse)pageContext.getResponse();
return EVAL_PAGE;
     }
    public void check ()
    {
     JspWriter out=pageContext.getOut();
    Connection con;
    Statement stmt;
    ResultSet rs;

    try
    {
 Class.forName("oracle.jdbc.driver.OracleDriver");
      }
       catch(ClassNotFoundException ex)
    {
    }

     if (adminmodel.list.equals("pickup"))
    {
   try
  { 
 con= DriverManager.getConnection     ("jdbc:oracle:thin:@localhost:1521:XE","gaurav","oracle");
  stmt=con.createStatement();
   rs=stmt.executeQuery("insert into myadmin(employeid,supervisor,department,pickdate,picktime) values('"+adminmodel.employeid+"','"+adminmodel.supervisor+"','"+adminmodel.department+"','"+adminmodel.pickdate+"','"+adminmodel.picktime+"') ");


  }


    catch(SQLException ex)
   {
   }
  } 
      else  if (adminmodel.list.equals("drop"))
     try
   { 
con= DriverManager.getConnection         ("jdbc:oracle:thin:@localhost:1521:XE","gaurav","oracle");
stmt=con.createStatement();
rs=stmt.executeQuery("insert intomyadmin(employeid,supervisor,department,dropdate,droptime) values('"+adminmodel.employeid+"','"+adminmodel.supervisor+"','"+adminmodel.department+"','"+adminmodel.dropdate+"','"+adminmodel.droptime+"') ");


  }


        catch(SQLException ex)
     {
    }

  } 

public int doEndTag() throws JspException
{

  check();
 return super.doEndTag();
 }

 }
4

1 に答える 1

0

最も露骨なエラーは、文字列を と比較していることです====値ではなく参照を比較します。つまり、2 つの String オブジェクトが同じであることをテストします。同じ文字が含まれている場合ではありません。.equals()文字列を比較するために使用します。

もう 1 つの大きな問題は、「コントローラー」が JSP タグの実装であることです。これはまったく意味がありません。タグは、JSP から HTML マークアップを生成するために使用されます。したがって、これはビューの一部です (MVC の V)。コントローラーは、サーブレットとして、またはサーブレットによって呼び出される POJO として実装する必要があります。

車輪を再発明し、自家製の MVC フレームワークを使用しているようです。そうしないでください。特に Java から始める場合。基本的なサーブレットと JSP (コントローラーとしてのサーブレット、ビューとしての JSP) を使用するか、Spring MVC や Stripes などのよく知られた MVC フレームワークを使用します。Stripes は、初心者でも簡単に使用およびセットアップできます。

于 2013-08-11T08:30:24.650 に答える