有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

请求的getParameter中的java setProperty值

我想为属性"host"提供请求的参数"ip"的值,该参数是使用form.html中的方法Get提交的

这是我的index.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Ip</title>
</head>
<body>
    <jsp:directive.include file="form.html"/>
    <% if (request.getParameter("ip") == null || 
           request.getParameter("ip") == ""){%>
        Not connected!
    <% } else {%>
    <jsp:useBean id="connect" class="test.Ip" />
    <jsp:setProperty name="connect" property="host" value="Connect" />
    <jsp:getProperty name="connect" property="host" />
    <% }%>
</body>
</html>

这是包含的文件form.html

<form action="index.jsp" method="GET">
    Connect to IP: <input type="text" name="ip"/>
    <input type="submit" value="Connect">
</form>

这是Java文件Ip.java

package test;

public class Ip{

    private String host;

    public String getHost(){
        return("Got value " +host);
    }
    public void setHost(String host){
        this.host = host;
    }
}

它返回字符串“get value Connect”,而不是我在表单中键入的值


共 (1) 个答案

  1. # 1 楼答案

    首先,要比较字符串,需要使用方法equals,否则会比较两个不同的对象

    改变:

    request.getParameter("ip") == ""){%
    

    致:

    request.getParameter("ip").equals("")){%
    

    然后,您需要将属性主机设置为参数ip

    改变:

    <jsp:setProperty name="connect" property="host" value="Connect" />
    

    To(因为textfield的name属性是ip而不是Connect,这就是按钮):

    <jsp:setProperty name="connect" property="host" param="ip" />