Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在mvc框架中使用列表变量设置条件_Java_Jsp - Fatal编程技术网

Java 如何在mvc框架中使用列表变量设置条件

Java 如何在mvc框架中使用列表变量设置条件,java,jsp,Java,Jsp,我使用的是MVC框架,在jsp页面上,我在列表中有两个选项(pickdate/picktime)和(dropdate/droptime)作为文本字段,我尝试根据列表框中的选择插入(pickdate/picktime)和(dropdate/droptime),如果用户选择pickdate/picktime被插入数据库,反之亦然,但它不起作用,请告诉我哪里错了 <jsp:useBean id="MrBean" class="pack.java.adminmodel"/> <jsp:

我使用的是MVC框架,在jsp页面上,我在列表中有两个选项(pickdate/picktime)和(dropdate/droptime)作为文本字段,我尝试根据列表框中的选择插入(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" %>
这是一个控制器类

package pack.java;
导入pack.java.adminmodel;
导入java.io.*;
导入java.lang.*;
导入java.sql.*;
导入javax.servlet.http.*;
导入javax.servlet.*;
导入javax.servlet.jsp.*;
导入javax.servlet.jsp.tagext.*;
公共类admincontrol扩展了标记支持
{
HttpServletRequest请求;
HttpServletResponse;
public int doStartTag()抛出JSPEException
{
请求=(HttpServletRequest)pageContext.getRequest();
response=(HttpServletResponse)pageContext.getResponse();
返回评估页面;
}
公共作废检查()
{
JspWriter out=pageContext.getOut();
连接con;
报表stmt;
结果集rs;
尝试
{
类forName(“oracle.jdbc.driver.OracleDriver”);
}
捕获(ClassNotFoundException ex)
{
}
if(adminmodel.list.equals(“拾取”))
{
尝试
{ 
con=DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:XE”、“gaurav”、“oracle”);
stmt=con.createStatement();
rs=stmt.executeQuery(“插入myadmin(employeid、主管、部门、pickdate、picktime)值(“+adminmodel.employeid+”、“+adminmodel.supervisor+”、“+adminmodel.department+”、“+adminmodel.pickdate+”、“+adminmodel.picktime+”));
}
catch(SQLException-ex)
{
}
} 
else if(adminmodel.list.equals(“drop”))
尝试
{ 
con=DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:XE”、“gaurav”、“oracle”);
stmt=con.createStatement();
rs=stmt.executeQuery(“插入MyAdmin(employeid、主管、部门、dropdate、droptime)值(“+adminmodel.employeid+”、“+adminmodel.supervisor+”、“+adminmodel.department+”、“+adminmodel.dropdate+”、“+adminmodel.droptime+”));
}
catch(SQLException-ex)
{
}
} 
public int doEndTag()抛出JspException
{
检查();
返回super.doEndTag();
}
}

最明显的错误是将字符串与
=
进行比较<代码>=比较引用,而不是值。即,它测试两个字符串对象是否相同。如果它们包含相同的字符,则不会。使用
.equals()
比较字符串

另一个大问题是,您的“控制器”是一个JSP标记实现。这毫无意义。标记用于从JSP生成一些HTML标记。因此,它是视图的一部分(MVC中的V)。控制器应实现为servlet或servlet调用的POJO


看起来您正在重新发明轮子,并使用您自己开发的MVC框架。不要那样做。特别是如果您刚开始使用Java。使用基本的servlet和JSP(servlet作为控制器,JSP作为视图),或者使用众所周知的MVC框架,如SpringMVC或Stripes。Stripes非常容易使用和设置,如果您刚开始的话。

尝试给父选择控件命名,即
,而不是给它的选项标签命名。我的错误,我没有上传完整视图类。。现在我已经更新了。。。我甚至尝试过使用.equals()方法,但它仍然不在数据库中存储值。。。请检查我更新的代码,我做的对吗?不,你没有。表单发布的是所选选项值,而不是其标签。因此,您将收到的是“1”或“2”,而不是“拾取”或“丢弃”。使用调试器检查变量,或向代码中添加日志跟踪。永远不要忽略异常:如果你得到一个,你不会知道,因为你选择忽略它。