mikezang
mikezang

Reputation: 2489

How to move JavaScript code with Servlets into external file?

I have some JavaScript code with Servlets code, I want to move all of them (between ) to external js file, but it doesn't work, what can I do? How to modify my code if only part of JavaScript can move to external file.

<script language="JavaScript" type="text/JavaScript">
var sel = document.getElementById('sel');
var selList = [];
<%
String key = "";
String text = "";

for(int i = 0; i < master.size(); i++) {
    Map option = (Map) master.get(i);
    key = (String) option.get("Code");
    text = key + " " + (String) option.get("NAME");
%>
    selList.push({
        key: "<%=key%>",
        text: "<%=text%>"
    }); 
<%
}
%>
</script>

Upvotes: 0

Views: 457

Answers (1)

yılmaz
yılmaz

Reputation: 1826

Here two options:

1-by not using ajax

external.js

var images;

function renderImages(){
    //do things for showing images here.
    //images variable has images data as JSON (i suggest you this way) so you can easily iterate over list and render it.
}

jsp

<html>
<head>
<script type="text/javascript" src="external.js"></script>
<script>
    images = "<%=request.getAttribute("imageDataAsJSON")%>"; //here i assume you populate request variable with your image data in JSON format. Be careful about parse errors due to ' and ".
</script>

</head>
<body>
<script>
 renderImages();
</script>
</body>
</html>

2-by using ajax (you can seperate client side logic into external js code and populate data into it by doing ajax calls to server side.)

external.js

function renderImages(){
    //do ajax to your servlet which returns image data as JSON.
    //iterate over image data and render your html elements accordingly.
}

jsp

<html>
<head>
<script type="text/javascript" src="external.js"></script>
</head>
<body>
</body>
</html>

Upvotes: 1

Related Questions