通过jsp转换温度

时间:2013-10-12 21:24:17

标签: java jsp

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

  1. 一个html表单,其中包含一个用于输入温度编号的表单和两个单选按钮,用于决定您是否需要Celsius或Fahrenheit。

  2. 一个jsp页面,它获取该表单的值并进行数学运算以转换​​温度。

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

  4. 我很难让我的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>
    

    非常感谢您的任何建议/指示,我为这条长信息道歉。

1 个答案:

答案 0 :(得分:0)

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

  1. 有一些遗漏的声明,例如language =“java”和不必要的导入文件&lt;%@ page import =“java.sql。*”%&gt;
  2. 用于存储温度的变量应为双倍的小数。
  3. if语句参数未正确检查所选值单选按钮的值。使用equals()not ==。请参阅此链接What's the difference between ".equals" and "=="?
  4. 在else
  5. 之后缺少结束}
  6. 代码c = parseFloat(request.getParameter('inp')。value);没有必要也不正确。使用“而不是'。
  7. 这是更正后的代码。

    <%@ 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;
    }
     %>
    

    这将按预期编译和执行。