как вызвать метод в классе на jsp странице - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь создать систему оценок в jsp. Общая сумма должна быть проверена и оценка и замечание будет дано, если она попадает в определенную категорию. это метод, который я написал в моем java классе.

public void grade_adaptor(double sTotal,String Grade,String Remark){
 if(sTotal>=80){
            Grade="A";
            Remark="ADVANCE";
        }else if(sTotal>=75 && sTotal<=79.9){
            Grade="P";
            Remark="PROFICIENT";
        }else if(sTotal>=70 && sTotal<=74.9){
            Grade="AP";
            Remark="APPROACHING PROFICIENT";
        }else if(sTotal>=65 && sTotal<=69.9){
            Grade="D";
            Remark="DEVELOPING";
        }else if(sTotal>=0.0 && sTotal<=64.9){
            Grade="B";
            Remark="BEGINNING";
        }

 }

на моей странице jsp у меня есть поле ввода, в которое будет введено значение, и я хочу вызвать метод, чтобы эта работа работала , вот что у меня есть:

<%@page import="pack.Grading" %>
<!DOCTYPE html>
<head>
<link rel="stylesheet" href="st.css" type="text/csss"/>
</head>
<body>
<form action="update.jsp" method="post">
<input type="text" name="t_value" value="total_value"/>
<input type="submit" name="save" value="save"/>
</form>

//this is the code i wrote below
<% 
String value=request.getParameter("t_value");
if(value!=null){
//these are the variables i created for the method in the java class
double total=Double.valueOf(value);
String t_grade,t_remark;

/*this is the code i wrote to call the method into the page.
the class in which the method is created is called Grading
*/
Grading gr=new Grading();
gr.grade_adaptor(total,t_grade,t_remark);
//a dialog box to display the result
JOptionPane.showMessageDialog(null,"value: "+total+" grade: "+t_grade+" remark:"+t_remark);
}
%>

</form>
</body>
</html>

но я получаю нулевое значение для оценки и замечания в JOptionPane. пожалуйста, что я делаю не так. Мы будем благодарны за любую помощь. Спасибо

1 Ответ

0 голосов
/ 16 апреля 2020

Core OOP не соответствует. Определение метода неверно (или не используется должным образом в рамках цели):
public void grade_adaptor(double sTotal,String Grade,String Remark)
Требуется только sTotal, как показывают расчеты.

Предлагаемые изменения:

class Result
{
    public String Grade;
    //or use getter
    String Remark;
    Result(String Grade,String Remark)
    {
        this.Grade = Grade;
        ...
    }
    ...
}


public Result grade_adaptor(double sTotal)
{
    if(sTotal>=80){
       return new Result("A","ADVANCE");
         ...  
}


Grading gr=new Grading();
Result r=gr.grade_adaptor(total);
//a dialog box to display the result
JOptionPane.showMessageDialog(null,"value: "+total+" grade: "+r.Grade+" remark:"+r.Remark);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...