0

I am trying to deploy a code in struts 1.2 for an meta search engine . The code mapping is all fine , but the index page isnt rendered on the browser instead the code is displayed on the title bar ... any idea what could be wrong ??? The jsp page is this

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri ="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri ="/WEB-INF/struts-bean.tld" prefix="bean" %>
<html:html>
<head>
<title>Meta Search Engine</tile>
    <html:base/>

    <head> Search Engine </head>
            <script language="javascript">
function validateCheckBoxes(){
        var yahooCheck = document.getElementsByName ('yahooCheck');
        var altavistaCheck = document.getElementsByName ('altavistaCheck');
        var microsoftCheck = document.getElementsByName ('microsoftCheck');
        var lycosCheck = document.getElementsByName ('lycosCheck');
        var askCheck = document.getElementsByName ('askCheck');

        var i = 0;
        if (yahooCheck[0].checked){
            i=i+1;
        }
        if (altavistaCheck[0].checked){
            i=i+1;
        }
        if (microsoftCheck[0].checked){
            i=i+1;
        }
        if (lycosCheck[0].checked){
            i=i+1;
        }
        if (askCheck[0].checked){
            i=i+1;
        }

        if(i>2){
            if (!yahooCheck[0].checked){
                yahooCheck[0].disabled = true;
            }
            if (!altavistaCheck[0].checked){
                altavistaCheck[0].disabled = true;
            }
            if (!microsoftCheck[0].checked){
                microsoftCheck[0].disabled = true;
            }
            if (!lycosCheck[0].checked){
                lycosCheck[0].disabled = true;
            }
            if (!askCheck[0].checked){
                askCheck[0].disabled = true;
            }   
        }

        if(i<3){
            if (yahooCheck[0].disabled){
                yahooCheck[0].disabled = false;
            }
            if (altavistaCheck[0].disabled){
                altavistaCheck[0].disabled = false;
            }
            if (microsoftCheck[0].disabled){
                microsoftCheck[0].disabled = false;
            }
            if (lycosCheck[0].disabled){
                lycosCheck[0].disabled = false;
            }
            if (askCheck[0].disabled){
                askCheck[0].disabled = false;
            }   
        }
        document.getElementById('checkValue').value = i;
        return true;
    }

    function checkEverything(){
        if (document.getElementById('checkValue').value < 3){
            alert('Please Select 3 Search Engines');
            return false;
        }
        if((!document.getElementsByName('aggregationType')[0].checked)&&(!document.getElementsByName('aggregationType')[1].checked)){
            alert('Please Select the type of Aggregation');
            return false;
        }
        if(document.getElementsByName('searchString')[0].value == ""){
            alert('Please Enter a query to search for');
            return false;
        }
        return true;
    }
    </script>
<body>
<html:img page="/images/search-engine-share.gif"/>
<BR>
<html:form action="/submitSearchForm">
<center>
<input id="checkValue" type="hidden" />
<html:checkbox property="yahooCheck" onclick="javascript: return validateCheckBoxes()">
    <bean:message key="button.yahooSearch"/>
</html:checkbox>
<html:checkbox property="altavistaCheck" onclick="javascript: return validateCheckBoxes()">
    <bean:message key="button.altavistaSearch"/>
</html:checkbox>
<html:checkbox property="microsoftCheck" onclick="javascript: return validateCheckBoxes()">
    <bean:message key="button.microsoftSearch"/>
</html:checkbox>
<html:checkbox property="lycosCheck" onclick="javascript: return validateCheckBoxes()">
    <bean:message key="button.lycosSearch"/>
</html:checkbox>
<html:checkbox property="askCheck" onclick="javascript: return validateCheckBoxes()">
    <bean:message key="button.askSearch"/>
</html:checkbox><br><br>

<html:radio property="aggregationType" value="Single Page Aggregation">
    <bean:message key="button.singlePage"/>
</html:radio>
<html:radio property="aggregationType" value="Three Page Aggregation">
    <bean:message key="button.threePage"/>
</html:radio><br><br>
<html:text property="searchString" size="42" maxlength="42"/>
<!--<html:submit property="searchEngineused">
    <bean:message key="button.lycosSearch"/>
</html:submit>
<html:submit property="searchEngineused">
    <bean:message key="button.askSearch"/>
</html:submit>
<html:submit property="searchEngineused">
    <bean:message key="button.yahooSearch"/>
</html:submit>&nbsp;&nbsp;
<html:submit property="searchEngineused">
    <bean:message key="button.altavistaSearch"/>
</html:submit>&nbsp;&nbsp;
<html:submit property="searchEngineused">
    <bean:message key="button.microsoftSearch"/>
</html:submit>&nbsp;&nbsp;-->
<html:submit property="searchEngineused" onclick="javascript: return checkEverything()">
    <bean:message key="button.search"/>
</html:submit>&nbsp;&nbsp;
</center>
</html:form>
<!--    <html:link page ="/CustomerDetails.jsp">Customer Form </html:link>-->
</body>
</html:html>
Dave Newton
  • 158,873
  • 26
  • 254
  • 302
Indi
  • 1

2 Answers2

0
  1. You never close your <title> tag.
  2. You have two <head> sections.
  3. Indent your code properly.
  4. Consider refactoring your JS.
  5. Consider using a JS library.
Dave Newton
  • 158,873
  • 26
  • 254
  • 302
-1

You can use this code. I think it should work.. and also u can make it simple instead of checking selected checkbox count for every checkbox you can check that in the submit.

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri ="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri ="/WEB-INF/struts-bean.tld" prefix="bean" %>
<html:html>
  <head>
    <title>Meta Search Engine</tile>
    <html:base/>
        <script language="javascript">
        function validateCheckBoxes(){
           var yahooCheck = document.getElementsByName ('yahooCheck');
           var altavistaCheck = document.getElementsByName ('altavistaCheck');
           var microsoftCheck = document.getElementsByName ('microsoftCheck');
           var lycosCheck = document.getElementsByName ('lycosCheck');
           var askCheck = document.getElementsByName ('askCheck');

           var i = 0;
           if (yahooCheck[0].checked){
            i=i+1;
           }
           if (altavistaCheck[0].checked){
           i=i+1;
           }
           if (microsoftCheck[0].checked){
           i=i+1;
           }
           if (lycosCheck[0].checked){
           i=i+1;
           }
           if (askCheck[0].checked){
           i=i+1;
           }

    if(i>2){
        if (!yahooCheck[0].checked){
            yahooCheck[0].disabled = true;
        }
        if (!altavistaCheck[0].checked){
            altavistaCheck[0].disabled = true;
        }
        if (!microsoftCheck[0].checked){
            microsoftCheck[0].disabled = true;
        }
        if (!lycosCheck[0].checked){
            lycosCheck[0].disabled = true;
        }
        if (!askCheck[0].checked){
            askCheck[0].disabled = true;
        }   
    }

    if(i<3){
        if (yahooCheck[0].disabled){
            yahooCheck[0].disabled = false;
        }
        if (altavistaCheck[0].disabled){
            altavistaCheck[0].disabled = false;
        }
        if (microsoftCheck[0].disabled){
            microsoftCheck[0].disabled = false;
        }
        if (lycosCheck[0].disabled){
            lycosCheck[0].disabled = false;
        }
        if (askCheck[0].disabled){
            askCheck[0].disabled = false;
        }   
    }
    document.getElementById('checkValue').value = i;
    return true;
}

function checkEverything(){
    if (document.getElementById('checkValue').value < 3){
        alert('Please Select 3 Search Engines');
        return false;
    }
    if((!document.getElementsByName('aggregationType')[0].checked)&&    (!document.getElementsByName('aggregationType')[1].checked)){
        alert('Please Select the type of Aggregation');
        return false;
    }
    if(document.getElementsByName('searchString')[0].value == ""){
        alert('Please Enter a query to search for');
        return false;
    }
    return true;
}
</script>
<body>
<html:img page="/images/search-engine-share.gif"/>
<BR>
<html:form action="/submitSearchForm">
<center>
<input id="checkValue" type="hidden" />
<html:checkbox property="yahooCheck" onclick="javascript: return validateCheckBoxes()">
<bean:message key="button.yahooSearch"/>
</html:checkbox>
<html:checkbox property="altavistaCheck" onclick="javascript: return     validateCheckBoxes()">
<bean:message key="button.altavistaSearch"/>
</html:checkbox>
<html:checkbox property="microsoftCheck" onclick="javascript: return   validateCheckBoxes()">
<bean:message key="button.microsoftSearch"/>
</html:checkbox>
<html:checkbox property="lycosCheck" onclick="javascript: return validateCheckBoxes()">
<bean:message key="button.lycosSearch"/>
</html:checkbox>
<html:checkbox property="askCheck" onclick="javascript: return validateCheckBoxes()">
<bean:message key="button.askSearch"/>
</html:checkbox><br><br>

<html:radio property="aggregationType" value="Single Page Aggregation">
<bean:message key="button.singlePage"/>
</html:radio>
<html:radio property="aggregationType" value="Three Page Aggregation">
<bean:message key="button.threePage"/>
</html:radio><br><br>
<html:text property="searchString" size="42" maxlength="42"/>
<html:submit property="searchEngineused" onclick="javascript: return   checkEverything()">
<bean:message key="button.search"/>
</html:submit>&nbsp;&nbsp;
</center>
</html:form>
</body>
</html:html>