开发者

How to call a java function from a jsp

开发者 https://www.devze.com 2023-02-12 14:39 出处:网络
I require the username used by the user in my project be compared to other usernames already registered. The username should be distinct. For this the input is taken in newuser.jsp which in turn calls

I require the username used by the user in my project be compared to other usernames already registered. The username should be distinct. For this the input is taken in newuser.jsp which in turn calls a function searchForUsername in SemanticSearch.java. When the new user is registering even the email id is checked for validation and later when the username is typed the above checking needs to be done. I have tried one way which is not working.Please point what mistake I am doing?

My code in SemanticSearch.java has constructor:

public SemanticSearch() {}

The following code follows after validation of email id.

My code in newuser.jsp is

SemanticSearch myclass=new SemanticSearch();

boolean rets=myclass.searchForUsername(username);

if (rets==false)

{

    alert("Username already exists");

    document.getElementById("username").value="";

    document.getElementById("pass开发者_JS百科word").value="";

    document.getElementById("username").focus();

}

During the click event of adduser button this function has to be called. But during the click function nothing seems to happen. Please help.


You're intermixing Java and JavaScript languages. That is not correct. They are both distinct languages which runs in distinct environments. Java runs in webserver and JavaScript runs in webbrowser.

There are basically two ways to achieve the requirement.

  1. Create a servlet which listens on a certain URL, does the validation job and then let your form submit to it and let the servlet return to the same page where error messages are displayed using JSP/EL. You can find a simple example in our servlet wiki page.

  2. Create a servlet which listens on a certain URL, does the validation job and then let your JavaScript code invoke it by Ajax techniques and modify the HTML DOM accordingly to add error messages. You can find an examlpe in an answer of this question.


Your code should looks like this. All java code in jsp file need to be enclosed with "<%" and "%>"

<%
SemanticSearch myclass=new SemanticSearch();

boolean rets=myclass.searchForUsername(username);

if (rets==false)

{
%>
alert("Username already exists");

    document.getElementById("username").value="";

document.getElementById("password").value="";

document.getElementById("username").focus();
<%
}
%>


<%
SemanticSearch myclass=new SemanticSearch();

boolean rets=myclass.searchForUsername(username); // how do you get username on button click and assign it to this variable?

if (rets==false)
{
%>

I guess you can assign a Java variable to a JavaScript variable

var username = '<%= username%>';

but does the vice versa work?

<%String username = %>document.getElementById("username").value<%:%>

I would prefer BalusC's approach (1st one), a javascript validation for this case can be risky as mostly all the browsers support disabling of javascript.

0

精彩评论

暂无评论...
验证码 换一张
取 消