Struts <html:select> 动态设置所选选项
Struts <html:select> set selected option dynamically
在下面的 Struts 标记代码中,我需要根据从操作传递的值在呈现页面之前更改 select 中的 selected 值。但是我找不到获取选项值并对其进行操作的方法。
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html:form action="searchMusic" method="POST">
<html:select property="searchType">
<html:option value="CLASSICAL">CLASSICAL</html:option>
<html:option value="ROCK">ROCK</html:option>
</html:select>
<html:submit value="Search"/>
</html:form>
我尝试了以下功能,但它不起作用。
$(document).ready(function() {
var viewRockOrClassical = '${viewRockOrClassical}';
if (!isEmpty(viewRockOrClassical)) {
var searchBy = document.getElementByName("searchType");
if (viewRockOrClassical == "ROCK") {
searchBy.value = "ROCK";
}
}
});
function isEmpty(str) {
return (!str || 0 === str.length);
}
我在页面加载时遇到的错误是
Uncaught TypeError: undefined is not a function
这是由 "document.getElementByName("searchType")" 行引起的。
给 select 标签一个 id="selectbox" 然后试试这个:
var viewRockOrClassical = '${viewRockOrClassical}';
if (!isEmpty(viewRockOrClassical)) {
var searchBy = document.getElementByID("searchType").options;
for(int i=0;i<searchBy.length;i++) {
if (viewRockOrClassical == "ROCK") {
searchBy[i].value = "ROCK";
}
}
}
在行动中设置 属性 价值 class,因为你在行动本身就拥有价值。
formObject.searchType = value;
因此它将在页面加载时显示所选值。
动态设置Struts表单中的值。我们可以直接将值设置为关联的 Struts 操作表单并转发到包含该表单的 JSP 页面。
public ActionForward selectMusic(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
Object requestForMusicType = request.getParameter("requestForMusicType");
if (requestForMusicType != null && "forRockMusic".equalsIgnoreCase((String) requestForMusicType)) {
MusicTypeSearchForm musicTypeSearchForm = new MusicTypeSearchForm();
musicTypeSearchForm.setSearchType("ROCK");
request.setAttribute("musicTypeSearchForm", musicTypeSearchForm);
}
return mapping.findForward("searchForMusic");
}
在下面的 Struts 标记代码中,我需要根据从操作传递的值在呈现页面之前更改 select 中的 selected 值。但是我找不到获取选项值并对其进行操作的方法。
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html:form action="searchMusic" method="POST">
<html:select property="searchType">
<html:option value="CLASSICAL">CLASSICAL</html:option>
<html:option value="ROCK">ROCK</html:option>
</html:select>
<html:submit value="Search"/>
</html:form>
我尝试了以下功能,但它不起作用。
$(document).ready(function() {
var viewRockOrClassical = '${viewRockOrClassical}';
if (!isEmpty(viewRockOrClassical)) {
var searchBy = document.getElementByName("searchType");
if (viewRockOrClassical == "ROCK") {
searchBy.value = "ROCK";
}
}
});
function isEmpty(str) {
return (!str || 0 === str.length);
}
我在页面加载时遇到的错误是
Uncaught TypeError: undefined is not a function
这是由 "document.getElementByName("searchType")" 行引起的。
给 select 标签一个 id="selectbox" 然后试试这个:
var viewRockOrClassical = '${viewRockOrClassical}';
if (!isEmpty(viewRockOrClassical)) {
var searchBy = document.getElementByID("searchType").options;
for(int i=0;i<searchBy.length;i++) {
if (viewRockOrClassical == "ROCK") {
searchBy[i].value = "ROCK";
}
}
}
在行动中设置 属性 价值 class,因为你在行动本身就拥有价值。
formObject.searchType = value;
因此它将在页面加载时显示所选值。
动态设置Struts表单中的值。我们可以直接将值设置为关联的 Struts 操作表单并转发到包含该表单的 JSP 页面。
public ActionForward selectMusic(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
Object requestForMusicType = request.getParameter("requestForMusicType");
if (requestForMusicType != null && "forRockMusic".equalsIgnoreCase((String) requestForMusicType)) {
MusicTypeSearchForm musicTypeSearchForm = new MusicTypeSearchForm();
musicTypeSearchForm.setSearchType("ROCK");
request.setAttribute("musicTypeSearchForm", musicTypeSearchForm);
}
return mapping.findForward("searchForMusic");
}