4

I am newbie in jquery. I would like to read Java properties file in my jsp page using javascript or jquery. I'm goggling about it but not satisfied.

My application is developed by Struts2, Eclipse Juno and Windows7. This is my javascript

 function checkedRadioForDelete(f) {
    var chx = document.getElementsByTagName('input');
    for ( var i = 0; i < chx.length; i++) {
        if (chx[i].type == 'radio' && chx[i].checked) {
            var con = confirm("Are you sure to delete?");
            if (con != true) {
            } else {
               f.action = "MyAction.action";
               f.submit();
             }
            return true;
         }
    }
    alert("Please select one.");
    return false;
 }

This is my properties file

msg.confirm=Are you sure to delete?
msg.alert=Please select one.

I would like to read confirm and alert box values from properties file. So is it possible with Ajax or jquery or javascript?

Roman C
  • 49,761
  • 33
  • 66
  • 176
Sai Ye Yan Naing Aye
  • 6,622
  • 12
  • 47
  • 65
  • Javascript (on the client side) would have to read it using AJAX. Why do you want to do it with javascript? Show some code to clarify what you need. If you can't come up with some code, you need to think more about what you're trying to do. – Ruan Mendes Dec 06 '13 at 04:50
  • You mean you have a list of things you want to delete in a properties file, and you'd like a bunch of checkboxes to delete each of them? Please clarify your question. Show your properties file and what you'd like your HTML to do. – Ruan Mendes Dec 06 '13 at 05:28

4 Answers4

4

One shouldn't use scriptlets in JSP, you can easily do it using struts2 tags.

Change your Javascript in JSP as follows :

function checkedRadioForDelete(f) {
    var chx = document.getElementsByTagName('input');
    for ( var i = 0; i < chx.length; i++) {
        if (chx[i].type == 'radio' && chx[i].checked) {
            var con = confirm("<s:text name="msg.confirm"/>");
            if (con != true) {
            } else {
               f.action = "MyAction.action";
               f.submit();
             }
            return true;
         }
    }
    alert("<s:text name="msg.alert"/>");
    return false;
 }
Roman C
  • 49,761
  • 33
  • 66
  • 176
coding_idiot
  • 13,526
  • 10
  • 65
  • 116
2
Note: Updating my answer based on comments.

In your JSP page you can use scriptlets within javascript function (or tag) 

function checkedRadioForDelete(f) {
    var confirmMessage = '<%= properties.getProperty("confirm.message") %>';
    var alertMessage= '<%= properties.getProperty("alert.message") %>';
            var chx = document.getElementsByTagName('input');
            for ( var i = 0; i < chx.length; i++) {
                if (chx[i].type == 'radio' && chx[i].checked) {
                    var con = confirm(confirmMessage);
                    if (con != true) {
                    } else {
                       f.action = "MyAction.action";
                       f.submit();
                     }
                    return true;
                 }
            }
            alert(alertMessage);
            return false;
         }
jsjunkie
  • 559
  • 3
  • 7
2

You can load properties with javascript using messageResource.js library created by me.

1) Include messageResource.js.

<script src="messageResource.min.js"></script>

2) Change javascript as follows.

// initialize messageResource.js  
messageResource.init({
    // path to directory containing properties files
    filePath : 'path/resource'
});

function checkedRadioForDelete(f) {

    // get values from properties files
    var confirmMsg = messageResource.get('msg.confirm', 'fileName');
    var alertMsg = messageResource.get('msg.alert', 'fileName');

    var chx = document.getElementsByTagName('input');
    for ( var i = 0; i < chx.length; i++) {
        if (chx[i].type == 'radio' && chx[i].checked) {
            var con = confirm(confirmMsg);
            if (con != true) {
            } else {
                f.action = "MyAction.action";
                f.submit();
            }
            return true;
        }
    }
    alert(alertMsg);
    return false;
}
Khan
  • 429
  • 7
  • 14
  • Thanks. It worked for me with little problem. It is not working for me first time of page load. After page load, then it is working. Do you know what am I missing? I have included init and load method in document ready function. – sarwar026 Mar 19 '17 at 13:39
0

If anyone needs help for a Web Application, please see my answer that explains the simplest method to read properties from a property file in the project directory. In summary, you will be able to populate some selected properties in hidden inputs and then read the hidden input value from JavaScript.

Keshan Fernando
  • 347
  • 1
  • 4
  • 16