0

我现在已经搜索了 2 个小时,但显然我没有在正确的地方搜索。我正在尝试创建一个温度转换器计算器。它是三页

  1. 一个 html 表单,其中包含一个用于输入温度数字的表单和 2 个单选按钮来决定您需要摄氏温度还是华氏温度。

  2. 一个 jsp 页面,它采用该表单的值并进行数学转换以转换温度。

  3. 如果用户在表单中输入无效字符,则会引发错误的 jsp 页面。

我很难让我的 jsp 页面转换数字并将用户重定向到另一个显示结果的页面。当我输入一个数字并按下提交按钮时,我被带到我的 jsp 页面代码。如果您想知道,这是一个班级的作业。我准备好翻转桌子并需要帮助。我的代码如下。

第 1 页:

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    </head>

    <body>
        <script type="text/javascript">
            function check(){
                document.getElementByValue("fahr").checked=true

            }
            function check2(){
                document.getElementByValue("cel").checked=true
            }

            // -->
        </script>

        <form name="Temperature Converter" method="get" action="convert.jsp">
            <h2 style="font-family:arial;color:red">Temperature Calculator</h2>

            <table border="1">
                <tbody>
                    <tr>
                        <td>Enter a temperature in number form:</td>
                        <td>
                            <input type="text" name="fTemp" id="fTemp"  />
                        </td>
                        <td>
                            <input type="radio" name="temp" value="cel" onclick="check2();return false">Convert to Celsius
                            <br>
                            <input type="radio" name="temp" value="fahr" onclick="check();return false">Convert to Fahrenheit
                        </td>
                    </tr>
                    <tr>
                        <td><input type="submit" value="Convert!">

                        </td>
                    </tr>
                </tbody>
            </table>
        </form>
    </body>
</html>

第 2 页:这是我觉得一团糟的地方。

<%@page contentType="text/html"%>
<%@page import="java.sql.*" %>
<%@page session="true"%>
<%!
    String inp = null;
    int temperature = 0;
        int c = 0;
        int f = 0;

%> 
<%
    inp = request.getParameter("fTemp");

    if (inp == null || inp.equals("") )
    {
        response.sendRedirect("errorMsg.jsp?msg=You are missing values.");
        return;
    }
    try
    {
     if (request.getParameter("cel") = checked)
                {
                f = Integer.parseInt(inp);
                c = (f - 32) * (5.0 / 9.0);
        }else{
                c = Integer.parseInt(inp);
        c = parseFloat(request.getParameter('inp').value);
                f = (c * (9.0 / 5.0)) + 32.0;

    }
    catch (Exception e)
    {
        response.sendRedirect("errorMsg.jsp?msg=Invalid numbers entered.");
        return;
    }
%>
<!DOCTYPE HTML>
<html>
    <head>
        <title>First jsp Page</title>
    </head>
    <body>
        <p>The temperature is <%= c %></p>
                <p>The temperature is <%= f %></p>
    </body>
</html>

非常感谢您的任何建议/指导,对于这么长的信息,我深表歉意。

4

1 回答 1

0

我查看了您的代码,convert.jsp 文件中有一些语法错误。

  1. 缺少一些声明,例如 language="java" 和不必要的导入文件 <%@page import="java.sql.*"%>
  2. 用于存储温度的变量应该是双精度数,因为它们是小数。
  3. if 语句参数未正确检查所选值单选按钮的值。使用 equals() 而不是 ==。请参阅此链接“.equals”和“==”有什么区别?
  4. 在 else 之后缺少一个结束 }
  5. 代码 c = parseFloat(request.getParameter('inp').value); 没有必要也不正确。使用“而不是'。

这是更正后的代码。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@page session="true"%>
<%!String inp = null;
double temperature = 0;
double c = 0;
double f = 0;%>
<%
inp = request.getParameter("fTemp");    

if (inp == null || inp.equals("")) {
    response.sendRedirect("errorMsg.jsp?msg=You are missing values.");
    return;
}
try {
    if ("cel".equals(request.getParameter("temp"))) {
        f = Integer.parseInt(inp);
        c = (f - 32) * (5.0 / 9.0);
    } else {
        c = Integer.parseInt(inp);
        f = (c * (9.0 / 5.0)) + 32.0;

    }
} catch (Exception e) {
    response.sendRedirect("errorMsg.jsp?msg=Invalid numbers entered.");
    return;
}
 %>

这将按照您的预期编译和执行。

于 2013-10-13T01:18:39.883 回答