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 如何在JSP中使用带有用户定义函数的类_Java_Jsp - Fatal编程技术网

Java 如何在JSP中使用带有用户定义函数的类

Java 如何在JSP中使用带有用户定义函数的类,java,jsp,Java,Jsp,我用java创建了一个程序,可以计算word中的整数输入,例如,123=123=123,它运行良好。但当我尝试在JSP中使用它时,它显示了一些错误 我是JSP新手,请帮帮我 我的完整代码如下 <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta htt

我用java创建了一个程序,可以计算word中的整数输入,例如,123=123=123,它运行良好。但当我尝试在JSP中使用它时,它显示了一些错误

我是JSP新手,请帮帮我

我的完整代码如下

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

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


        <p>The number you entered is<br>

            <%! 
            public class NumberToWord {

        int a, b;
        String output;

        String[] zeroToNineteen = new String[]{"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Tleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"};

        String[] twentyToNinetynine = new String[]{null, null, "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"};
        String h="100";

        public String numberToWord(String get) {
            get=h;
            int number = Integer.parseInt(get);


            if (number >= 0 && number < 20) {

                output = oneToNineteen(number);

            } else if (number >= 20 && number < 100) {

                output = bellowHundred(number);

            } else if (number >= 100 && number < 1000) {

                output = bellowThousand(number);

            } else if (number >= 1000 && number < 100000) {

                output = thousands(number);

            } else if (number >= 100000 && number < 10000000) {

                output = lacs(number);

            } else if (number >= 10000000) {

                output = crore(number);

            }
            return output;
        }

        public String oneToNineteen(int b) {

            output = zeroToNineteen[b];
            return output;
        }

        public String bellowHundred(int number) {
            if (number >= 0 && number < 20) {
                if (number == 0) {
                    output = "";
                } else {
                    output = oneToNineteen(number);
                }

            } else if (number >= 20 && number < 100) {
                a = number / 10;
                b = number % 10;
                if (b == 0) {
                    output = twentyToNinetynine[a];
                } else {
                    output = twentyToNinetynine[a] + oneToNineteen(b);
                }
            }
            return output;
        }

        public String bellowThousand(int number) {
            a = number / 100;
            if (a == 0) {
                output = "";
            } else {
                output = zeroToNineteen[a] + " Hundred ";
            }

            b = number % 100;
            output = output + bellowHundred(b);
            return output;
        }

        public String thousands(int number) {
            a = number / 1000;
            if (a >= 0 && a < 20) {
                if (a == 0) {
                    output = "";
                } else {
                    output = zeroToNineteen[a] + " Thousand ";
                }
            } else {
                output = bellowHundred(a) + " Thousand ";
            }

            b = number % 1000;
            output = output + bellowThousand(b);

            return output;
        }

        public String lacs(int number) {
            a = number / 100000;
            if (a >= 0 && a < 20) {
                if (a == 0) {
                    output = "";
                } else {
                    output = zeroToNineteen[a] + " Lac ";
                }
            } else {
                output = bellowHundred(a) + " Lac ";
            }

            b = number % 100000;
            if (b == 0) {
                output = output + "";
            } else {
                output = output + thousands(b);
            }

            return output;
        }

        public String crore(int number) {
            a = number / 10000000;
            if (a >= 0 && a < 20) {
                if (a == 0) {
                    output = "";
                } else {
                    output = zeroToNineteen[a] + " Crore ";
                }
            } else if (a >= 20 && a < 100) {
                output = bellowHundred(a) + " Crore ";
            } else {
                output = bellowThousand(a) + " Crore ";
            }

            b = number % 10000000;
            if (b == 0) {
                output = output + "";
            } else {
                output = output + lacs(b);
            }

            return output;
        }
    }
            %>
<% 
NumberToWord display=new NumberToWord();
String show=display.output;
out.write("You have entered "+show);
%>
        </p>
        </body>
    </html>

显示输出
您输入的号码是
=0&&number<20){ 输出=oneToNineteen(数字); }否则,如果(编号>=20&&number<100){ 输出=100(个); }否则,如果(编号>=100&&number<1000){ 输出=1000(个); }否则,如果(数量>=1000和数量<100000){ 产量=千(个); }否则,如果(数量>=100000&&number<10000000){ 输出=lacs(数量); }否则,如果(数量>=10000000){ 输出=crore(数字); } 返回输出; } 公共字符串oneToNineteen(int b){ 输出=Zerotonieen[b]; 返回输出; } 公共字符串BellowHund(整数){ 如果(编号>=0&&number<20){ 如果(数字==0){ 输出=”; }否则{ 输出=oneToNineteen(数字); } }否则,如果(编号>=20&&number<100){ a=数字/10; b=数字%10; 如果(b==0){ 输出=二十吨乙二醇[a]; }否则{ 输出=二十吨碱[a]+一吨碱(b); } } 返回输出; } 公共字符串Bellow1000(整数){ a=每100人的人数; 如果(a==0){ 输出=”; }否则{ 输出=zeroToNineteen[a]+“百”; } b=数量%100; 输出=输出+波纹管(b); 返回输出; } 公共字符串千(整数){ a=每1000人的人数; 如果(a>=0&&a<20){ 如果(a==0){ 输出=”; }否则{ 输出=ZerotoneTeen[a]+“千”; } }否则{ 输出=百(a)+“千”; } b=数量%1000; 输出量=输出量+波纹管(b); 返回输出; } 公共字符串lacs(整数){ a=每100000人的人数; 如果(a>=0&&a<20){ 如果(a==0){ 输出=”; }否则{ 输出=零色调元素[a]+“Lac”; } }否则{ 输出=百分之一百(a)+“Lac”; } b=数量%100000; 如果(b==0){ 输出=输出+“”; }否则{ 产量=产量+千(b); } 返回输出; } 公共字符串字符(整数){ a=数字/10000000; 如果(a>=0&&a<20){ 如果(a==0){ 输出=”; }否则{ 输出=Zerotonieen[a]+“Crore”; } }否则,如果(a>=20&&a<100){ 输出=百分之一百(a)+“克”; }否则{ 输出=千(a)+“克”; } b=数量%10000000; 如果(b==0){ 输出=输出+“”; }否则{ 输出=输出+lacs(b); } 返回输出; } } %>

请建议我,我如何才能使这个代码工作


提前感谢:)

将类移动到自己的文件中。这是不需要的,, 但为了重用,并保持视图和逻辑分离

package abc.def;

public class NumberToWord {
然后导入该类

<%@page contentType="text/html" pageEncoding="UTF-8"
   import="abc.def.NumberToWord"
%>

<%
    NumberToWord ntw = new NumberToWord();
    ...


在jsp中使用Scriptlet中的Java代码不是一个好主意,但无论如何。。。你是怎么运行的?哎呀,我忘了添加那个语句了<代码>一些错误
但是
什么错误?
它不会显示数字的输出,例如,如果我们在“NumverToWords”类中为get参数取一个值“10”,则标题表示与问题正文完全不同的内容。