Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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 如何填充JSP中的所有数组值(如果为空)_Java_Mysql_Jsp - Fatal编程技术网

Java 如何填充JSP中的所有数组值(如果为空)

Java 如何填充JSP中的所有数组值(如果为空),java,mysql,jsp,Java,Mysql,Jsp,我正在为大学做我刚开始的第一个WEB项目,我需要JSP文件将信息发送到我的数据库,但要发送所有复选框值,我需要处理一个字符串数组变量,该变量应该在SQL命令中输入正确的值,但只有在所有3个复选框都选中的情况下,它才能工作,我知道这是因为我在SQL comand中调用了3个列表iten,所以如果用户只检查2,那么3ºiten就不存在了,所以我尝试放置类似于(如果数组[1]==null){在该数组上放置一个“XXX”值}的东西,但我无法使其工作 我尝试了这样的方法,只是为了给空的值加上一些值: `字

我正在为大学做我刚开始的第一个WEB项目,我需要JSP文件将信息发送到我的数据库,但要发送所有复选框值,我需要处理一个字符串数组变量,该变量应该在SQL命令中输入正确的值,但只有在所有3个复选框都选中的情况下,它才能工作,我知道这是因为我在SQL comand中调用了3个列表iten,所以如果用户只检查2,那么3ºiten就不存在了,所以我尝试放置类似于(如果数组[1]==null){在该数组上放置一个“XXX”值}的东西,但我无法使其工作

我尝试了这样的方法,只是为了给空的值加上一些值: `字符串vserv1; 字符串vserv2; 串vserv3

if(vservA[0] == null){
String vserv1 = "XXX";
}
else{
String vserv1 = vservA[0];
}

if(vservA[1] == null){
String vserv2 = "XXX";
}
else{
String vserv2 = vservA[1];
}

if(vservA[2] == null){
String vserv3 = "XXX";
}
else{
String vserv3 = vservA[2];
}
`

到现在为止,我只知道一些关于HTML、CSS的知识,还有一点关于JavaScript和JSP的知识

我还在学英语,所以。。。如果我写错了,我很抱歉

这是我的密码:

<head>
    <link rel="shortcut icon" href="img/ico/top.ico">
    <meta name="viewport" content="device=device-width, initial-scale=1.0">
    <title>Crie sua conta Top Show Pet </title>
    <meta charset = "UTF-8">
  <!--<meta http-equiv="refresh" content="0; URL='http://localhost:9999/TopPet/Pagina-Pet/Top-Pet-(PetForm).html'"/>-->
</head>
<body>

<%@page language="java" import="java.sql.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%
  // cria as variaveis e obtem os dados digitados pelo usuario
  String[] vservA       = request.getParameterValues("checkservico");
  String vanimal        = request.getParameter("PetEsc");
  String vdia           = request.getParameter("Data");
  String vhora          = request.getParameter("Hora");


  // variaveis para acessar o banco de dados
  String banco   = "toppetcadastro";
  String usuario = "root";
  String senha   = "";
  String url     = "jdbc:mysql://localhost:3306/" + banco;
  String driver  = "com.mysql.jdbc.Driver";

  // carrega o driver na memoria
    Class.forName( driver );

    // criar variavel para conectar com banco de dados
    Connection conexao ;

  // abrir a conexao com o banco
  conexao = DriverManager.getConnection( url , usuario , senha ) ;
  String select = "SELECT cliente.cpf, cliente.Nome, pet.id from cliente join pet on cliente.CPF = pet.Dono WHERE Email = '"+session.getAttribute("user")+"' and pet.Nome = '"+vanimal+"';";

  // cria o statement
    Statement stm = conexao.createStatement() ;

  // executa o comando do SQL
  ResultSet rs = stm.executeQuery(select);
    rs.next();

    String insert = "INSERT INTO agendado (Servico, Proprietario, Nome_Dono, Animal, Nome_Animal, Dia, Hora) VALUES('"+vservA[0]+" - "+vservA[1]+" - "+vservA[2]+"','"+rs.getString("CPF")+"','"+rs.getString("Nome")+"',"+rs.getString("id")+",'"+vanimal+"','"+vdia+"','"+vhora+"');";

    // executa o comando do SQL
    stm.executeUpdate( insert ) ;

  rs.close();
    stm.close() ;
    conexao.close() ;

    out.print("<br><br>") ;
    out.print("Dados gravados com sucesso!!!") ;

    out.print("<br><br>") ;
    out.print("<a href='http://localhost:9999/TopPet/Pagina-Agendar/Agendamento.jsp'>Continuar</a>") ;
%>

</body>
</html>```

Crie sua conta顶级宠物秀
```
您可以使用此方法将数组的所有
null
元素设置为
XXX

演示:

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        String[] arr = { "Hello", null, "World", null, "Great" };
        System.out.println("Before: " + Arrays.toString(arr));

        Arrays.setAll(arr, i -> arr[i] == null ? "XXX" : arr[i]);
        System.out.println("After: " + Arrays.toString(arr));
    }
}
Before: [Hello, null, World, null, Great]
After: [Hello, XXX, World, XXX, Great]
Before: [Hello, null, World, null, Great]
After: [Hello, XXX, World, XXX, Great]
输出:

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        String[] arr = { "Hello", null, "World", null, "Great" };
        System.out.println("Before: " + Arrays.toString(arr));

        Arrays.setAll(arr, i -> arr[i] == null ? "XXX" : arr[i]);
        System.out.println("After: " + Arrays.toString(arr));
    }
}
Before: [Hello, null, World, null, Great]
After: [Hello, XXX, World, XXX, Great]
Before: [Hello, null, World, null, Great]
After: [Hello, XXX, World, XXX, Great]
传统方式:
警告:这段代码迫切需要占位符值,因为你只是。我想这在任何方面都不安全,但这并不意味着在一个真正的网站上工作,甚至不上网,只是做最基本的,但感谢你的警告!帮助很大!=值得学习正确的方法这样做,因为如果你点击t在你的代码中留下了一堆bug。我会搜索更多关于它的信息,再次感谢!@Jônatasoares-有更新吗?我想我实现得不错:更改了
Arrays.setAll(arr,I->arr[I]==null?:XXX:arr[I]);
vservA.setAll(vservA,I->vservA[I]==null?:XXX:vservA[I])
这是我的数组,
输出。打印我删除的行,因为我不需要显示,但我不认为它导入了我放在
中的
import=“java.util.Arrays”
,不知道为什么,但我正在搜索。我还尝试将导入放在一起:
import=“java.sql.*,java.util.Arrays”
但似乎不起作用,现在页面异常显示:-本地类Main的修饰符非法;只允许使用abstract或final-方法Main不能声明为静态;静态方法只能声明为静态或顶级类型-不能调用数组类型String[]上的setAll(String[],(i)->{}不,您的实现不正确。它应该是
Arrays.setAll(vservA,i->vservA[i]==null?“XXX”:vservA[i])
同样,
工作正常。检查您是否输入了一些错误。
本地类Main的非法修饰符…
-不要在JSP中创建类
Main
。我编写了
class Main
只是一个示例。您只需使用
数组.setAll(vservA,I->vservA[I]==null?/XXX]:vservA[I]);
。如有任何疑问/问题,请随时发表评论。