标签的正确使用

2023-10-30

原文:http://book.csdn.net/bookfiles/502/10050217296.shtml

7.7  图片 标签
7.7.1  <html:img>标签
该标签对应HTML中的<img>元素,用于将图片嵌入到HTML页面中。<html:img>标签的src属性和page属性用来指定引用图片的地址。
使用src属性时,当src属性指定的是一个完整的URL时,如“http://localhost:8080/Log- on/img/logon.jpg”,引用的地址为:src的属性值;否则引用的地址为:协议+主机+端口+src的属性值;如:
<html:img src="/Logon/img/logon.jpg"/>
程序会在“http://localhost:8080/Logon/img/logon.jpg”地址下查找图片。
使用page属性(属性值应以“/”开头)引用的地址为:当前应用程序路径+page属性值。
如(假设当前应用为Logon):
<html:img page="/img/logon.jpg"/>
程序会在“http://localhost:8080/Logon/img/logon.jpg”地址下查找图片。
7.7.2  <html:image>标签
该标签对应HTML中的<input type="image">元素。<html:image>标签嵌入到<html:form>标签后成为表单的元素,并且通过单击该标签生成的图片可以提交表单。
<html:image>标签可通过page和src属性来指定引用图片的地址。这两个属性的用法与<html:img>标签中的page和src属性相同,读者可参看上一节中的讲解。
该标签不同于其他的表单元素标签。因为在提交表单后,<html:image>标签不象其他的表单元素以一对“参数名—值”的形式通过请求来传递参数,它是通过类似于下面的形式来传递参数的。
ImageName.x=100&ImageName.y=100
其中ImageName为<html:image>标签的property的属性值,x与y表示的是鼠标在该图片中单击的位置。所以在与该标签关联的ActionForm Bean中就不能像其他的表单元素那样简单的设置匹配的setXXX()和getXXX()方法。
文本框:
图7.15  使用标签
幸运的是,在ActionForm中可以嵌套另外一个JavaBean,并且Struts会像填充Action Form一样自动填充该JavaBean。下面通过一个实例向大家讲解如何使用<html:image>标签。
*  实例位置:mr/07/sl/09
实例运行结果如图7.15所示。
图中的“图片一”与“图片二”都被嵌套在一个表单中,单击任意图片后,都会提交表单,并且在图片下面会显示被选中图片的名称和鼠标在该图片中单击的位置。
下面为单击“图片二”提交表单后生成的请求。
http://localhost:8080/09/selectimg.do?imgbean_2.x=37&imgbean_2.y=27
实例程序创建过程如下(strutx-config.xml与web.xml文件的配置请参看光盘中的文件)。
(1)创建表单对应的ActionForm Bean:ImageForm。其关键代码如下。
例程7-9:光盘/mr/07/sl/09/src/com/image/actionform/ImageForm.java
package com.image.actionform;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.*;
public class ImageForm extends ActionForm {
    private ImageBean imgbean_1=new ImageBean();  //对应<html:image property="imgbean_1">标签
    private ImageBean imgbean_2=new ImageBean();  //对应<html:image property="imgbean_2">标签
    public void setImgbean_1(ImageBean imgbean_1){
        this.imgbean_1=imgbean_1;
    }
    public ImageBean getImgbean_1(){
        return this.imgbean_1;
    }
    ……//省略了imgbean_2属性的setXXX()与getXXX()方法
    public String getChecked(){
        if(imgbean_1.isChecked()){
            return "Yes_1";
        }
        else if(imgbean_2.isChecked())
            return "Yes_2";
        else
            return "No_All";
    }
    public void reset(ActionMapping mapping, HttpServletRequest request) {
        imgbean_1.reset();
        imgbean_2.reset();
    }
}
(2)创建嵌套在ImageForm中的JavaBean:ImageBean。其关键代码如下。
例程7-9:光盘/mr/07/sl/09/src/com/image/actionform/ImageBean.java
package com.image.actionform;
public class ImageBean {
    private String x;
    private String y;
    public ImageBean(){}
    public void setX(String x){
        this.x=x;
    }
    public String getX(){
        return this.x;
    }
    ……//省略了属性y的setY()与getY()方法
    public boolean isChecked(){
        if(this.x!=null&this.y!=null)
            return true;
        else
            return false;
    }
    public void reset(){
        this.x=null;
        this.y=null;
    }
}
(3)创建处理用户请求的Action类:ImageAction。其具体代码如下。
例程7-9:光盘/mr/07/sl/09/src/com/image/action/ImageAction.java
package com.image.action;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import com.image.actionform.ImageForm;
public class ImageAction extends Action {
    public ActionForward execute(ActionMapping mapping, ActionForm form,
                             HttpServletRequest request, HttpServletResponse response){
        HttpSession session=request.getSession();
        String mess="";
        ImageForm imgform=(ImageForm)form;
        if(imgform.getChecked().equals("Yes_1")){  //判断用户是否选择了"图片一"
            mess+="选中的图片按钮为:<b>图片一</b><br>";
            mess+="单击鼠标的位置为:X:"+imgform.getImgbean_1().getX()+
                      "&nbsp;&nbsp;"+"Y:"+imgform.getImgbean_1().getY();
            session.setAttribute("message",mess);
        }
        else if(imgform.getChecked().equals("Yes_2")){  //判断用户是否选择了“图片二”
            mess+="选中的图片按钮为:<b>图片二</b><br>";
            mess+="单击鼠标的位置为:X:"+imgform.getImgbean_2().getX()+
                      "&nbsp;&nbsp;"+"Y:"+imgform.getImgbean_2().getY();
            session.setAttribute("message",mess);
        }
        else{
            session.setAttribute("message","您没有选中图片按钮!");
        }
        return mapping.findForward("success");
    }
}
(4)创建index.jsp页面。该页面中包含以下关键代码。
例程7-9:光盘/mr/07/sl/09/index.jsp
<%
  String result=(String)session.getAttribute("message");
  if(result==null)
       result="请单击您要选择的图片!";
%>
  <html:form action="selectimg">
      <tr>
        <td align="center"><html:image property="imgbean_1" page="/img/pic_1.gif"/></td>
        <td align="center"><html:image property="imgbean_2" page="/img/pic_2.gif"/></td>
      </tr>
      <tr>
        <td align="center">图片一</td>
        <td align="center">图片二</td>
      </tr>
      <tr><td colspan="2"><%=result%></td></tr>
  </html:form>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

标签的正确使用 的相关文章

  • Struts ActionForm 属性应该是什么类型?

    我使用 Struts 1 2 4 继承了这个巨大的遗留 Java Web 应用程序 我有一个关于 ActionForms 的具体问题 其中一些仅具有字符串属性 即使对于数字 其中一些使用看似合适的类型 整数 日期 字符串等 这里的最佳实践是
  • 在 IE 中使用
    标签时,填充不起作用

    我在我的应用程序中使用 HTML5 标签 标签的填充在 chrome ff 和 safari 中工作正常 但在 IE 中不起作用 我尝试添加显示 块 与部分样式 但它没有用 有什么解决办法吗 许多旧浏览器不理解 HTML5 标签 例如sec
  • 在文档片段中查找注释或文本节点

    我必须清理 Nokogiri HTML DocumentFragment 文档 删除仅包含空格的注释节点和文本节点 这是一个例子 html p paragraph p p paragraph p p paragraph p doc Noko
  • 如何在没有查询参数的情况下重新加载页面?

    假设我想重新加载www domain com abc num 4 但我想重新加载www domain com abcONLY 问号后没有所有内容 window location window location href split 0
  • 如何防止 CSS 或 jQuery 中单词和标点符号之间的换行

    我在一个段落中有一些文字 我的问题是 当标点符号位于单词末尾时 有时可以换行到下一行 像这样 This is the text This is a new line 我可以用 CSS 或 jQuery 解决这个问题吗 如果您不在单词和标点符
  • data:image/png;base64 是什么意思?

    我从一个在线网站上举了一个例子 CSS 包含一个指向 png 的 URL 和一些随机字母 在这两种情况下 任何人都可以告诉我如何制作这样的代码 或者更确切地说 这些代码是关于什么的 这是html
  • 为什么插入符号在具有position:relative的contenteditable中不可见?

    When a contenteditable元素有position relative和背景颜色 插入符号放置在该元素中时是不可见的 这是一个例子 bug position relative background color lightgre
  • 使用 angularjs 在 Internet Explorer 中获取 Blob url

    鉴于此代码 来自其他人 var module angular module myApp module controller MyCtrl function scope scope json JSON stringify a 1 b 2 mo
  • 是否可以使materialize.css模态更大并删除垂直滚动条?

    我刚刚创建了按钮 单击后会弹出一个模式 每个按钮都有一个显示不同练习 gif 的模式 然而 模态框太小 导致用户无法看到整个 gif 迫使他们向下滚动 我想删除滚动条并使模态更大 以便用户可以看到整个 gif 任何帮助都会很棒 这是我的代码
  • 如何将红色边框与必需的属性一起添加到输入字段?

    目前 如果输入字段带有required属性为空时 会显示浏览器默认的错误信息 如果我删除此属性 由于我的 JavaScript 代码 它将在输入字段上显示红色边框 我如何同时显示两者 form submit function e e pre
  • 如何在 Ruby 中转义单引号?

    我通过一个脚本 不是我的 将一些 JSON 传递到服务器 该脚本接受 JSON 作为字符串 JSON 的某些内容包含单引号 因此我想确保在传递给脚本之前对所有单引号进行转义 我已经尝试过以下方法 gt irb gt 1 9 3p194 00
  • 删除窗口的背景图像 WPF

    我在 WPF 中遇到问题 其中窗口在关闭后 应用程序的另一部分尝试写入图像之前不会释放其对背景图像文件的文件锁定 举个例子 假设我有一个 WPF 应用程序 由 3 个窗口 1 个 菜单 选择窗口和另外 2 个窗口组成 两个窗口都会创建一个I
  • CSS 网格/布局框架,专注于固定元素和单页全屏布局

    经验法则 如果您在布局中过多地使用 CSS 请切换到框架 我已经研究了数十个网格 布局框架 其中大多数都专注于传统的文档网格布局 我的页面更像是一个 SPA 单页应用程序 它类似于桌面应用程序使用的布局 显然 HTML 不能很好地处理这个问
  • 将字符串解析为结构变量

    我试图将字符串解析为其中包含不同变量的结构向量 这是我到目前为止所拥有的 但似乎不起作用 struct client string PhoneNumber string FirstName string LastName string Ag
  • CSS 内边框?

    我纯粹用 CSS 创建了左侧的按钮 它是一个div 中的一个div 然而 右侧的三个按钮是background属性于img标签 我这样做是为了按照以下说明模拟翻转效果here http kyleschaeffer com best prac
  • http和https在编程中有什么区别[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我只知道 s 代表 安全 用户永远不
  • 如何防止输入文本中出现“后重音”

    我相信这是一个简单的问题 但在谷歌上搜索几个小时后我找不到任何答案 也许我无法在搜索中使用正确的单词 P 我有一个 javascript 方法 可以防止用户用数字以外的其他字符填充文本框 如下面的代码所示 它在 KeyDown 事件中使用
  • 如何将两个 span 元素一个向左对齐,另一个向右对齐?

    我有两个 span 要素 span style margin right auto 2012 XYZ Corp All Rights Reserved span span style margin left auto Built with
  • Python bug - 或者我的愚蠢 - 扫描字符串文字时 EOL

    我看不出以下两行之间有显着差异 然而第一个解析 而后者则不解析 In 5 n Axis of Awesome In 6 n Axis of Awesome File
  • 如何在Java中对对象数组进行字段级别排序以进行等级比较?

    In Java Class StudentProgress String Name String Grade CTOR goes here main class main method StudentProgress arrayofObje

随机推荐

  • mysql判断日期写法

    mysql判断时间是否是当天 昨天 今天 select count 1 from sign detail where date format create time Y m d date format now Y m d and membe
  • 如何分辨NMOS和PMOS的电路符号

    这个是N沟道增强型MOS管的电路符号 这个是P沟道增强型MOS管的电路符号 有时我们很容易把这两个符号弄混 首先对于单个MOS管而言内部衬底和源极是接在一起的 所以我们看到的MOS管电路符号 源极和衬底是接在一起的 并且这个箭头处的电极为衬
  • 通过RS485进行modbus通讯协议

    一 协议介绍 普通串口挂载485芯片 使用modbus协议来传递信息 modbus 也有ASCII和 RTU之分 这是他们之间的区别 协议 开始标记 结束标记 校验 传输效率 程序处理 ASCII 冒号 CR LF LRC 低 直观 简单
  • 动态贝叶斯网络DBN

    贝叶斯网络 贝叶斯网络 Bayesian Networks 也被称为信念网络 Belif Networks 或者因果网络 Causal Networks 是描述数据变量之间依赖关系的一种图形模式 是一种用来进行推理的模型 贝叶斯网络为人们提
  • 【Android】RxJava+Retrofit+OKHttp3实现数据上传

    依赖引入 Gson implementation com squareup retrofit2 converter gson 2 1 0 OkHttp3 implementation com squareup okhttp3 okhttp
  • SQL语言---数据更新

    文章目录 前言 一 数据更新之插入数据 1 插入单个元组 1 语句格式 2 语法说明 INTO子句 VALUES子句 插入规则 3 举例讲解 例子1 例子2 易犯错误 2 插入子查询结果 1 语句格式 2 语法说明 INTO子句 与插入单条
  • 成功解决RuntimeError: Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be

    错误代码 问题原因 这是由于Input type 与weight type的类型不符合 可以注意到Input type是没有cuda的 而weight type是在cuda上也就是有gpu的加载的 错误代码后的or可以不用管 解决办法 既然
  • DBA 面试题目

    from ITPUB more 技术方面 1 解释冷备份和热备份的不同点以及各自的优点 解答 热备份针对归档模式的数据库 在数据库仍旧处于工作状态时进行备份 而冷备份指在数据库关闭后 进行备份 适用于所有模式的数据库 热备份的优点在于当备份
  • c 语言超时溢出问题

    在嵌入式开发过程中 经常会遇到溢出问题 例如在使用软定时判断时间是否超时 如下 if timer ticks gt timeout timer ticks是一个无符号数 假如是一个无符号8位 当timer ticks为254 超时时间为2个
  • 【100%通过率 】【华为OD机试真题c++ 】最大平分数组【 2023 Q1

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 给定一个数组nums 可以将元素分为若干个组 使得每组和相等 求出满足条件的所有分组中 最大的平分组个数 输入描述 第一行输入 m 接着输入m个
  • awk与shell参数传递(或说变量传递)二三点

    awk与shell间参数 或说变量传递 是shell编程中常有的话题了 因为其中实际涉及到不少的知识点 比如包括 a 进程进通信 b awk参数形式 c shell命令解析 命令替换 等等 在此列举二三点例子 做为小结 以下主要分为二部分
  • 路由器工作原理

    定义 路由器 router 是互联网的枢纽 是连接英特网中各局域网 广域网的设备 它会根据信道的情况自动选择和设定路由 以最佳路径 按前后顺序发送数据 作用在OSI模型的第三层 提供了路由与转发两种重要机制 路由 路由器控制层面的工作 决定
  • 使用Python绘制余弦函数的可视化曲线

    使用Python绘制余弦函数的可视化曲线 余弦函数是一种重要的三角函数 其图像可以用来描述很多自然现象 在Python中 我们可以使用plot函数快速地绘制出余弦曲线的图像 首先 我们需要导入必要的库 import numpy as np
  • 如何在H264数据中获取PTS

    H264的ES原始数据一般是以NAL Network Abstract Layer 的格式存在 可以直接用于文件存储和网络传输 每一个NALU Network Abstract Layer Unit 数据 是由数据头 RBSP数据组成 首先
  • 计算1~100之间所有整数的和

    sum 0 for i in range 1 101 sum sum i print sum 5050 sum 0 i 1 while i lt 100 sum sum i i i 1 print sum 5050
  • 在VBA中写SQL语句的注意事项

    最近使用VBA连接MySQL数据库比较多 总结出一些书写方面的注意事项 分享出来 希望能给大家一些提示 同时也给自己做个备忘 1 单引号 双引号 在标准SQL语句中 字符串使用的是单引号 但是MySQL中 单引号和双引号都适用 平时使用时也
  • Python学习第七篇:sys标准库

    Python学习第七篇 sys标准库 活动地址 CSDN21天学习挑战赛 Python的sys模块提供访问由解释器使用或维护的变量的接口 并提供了一些函数用来和解释器进行交互 操控Python的运行时环境 要进行使用 直接导入即可 impo
  • Spring中ApplicationListener事件监听机制详解

    1 概述 Spring中事件监听 也有说法叫事件通知 机制 其实本质是观察者模式的应用 当某个事件发生时 其会被广播出去 监听该实践的listener就会被触发然后执行响应的动作 该模式可良好应用于程序解耦 类似消息的发布订阅 它的事件监听
  • 为什么绝对收敛级数具有可交换性+为什么一般项级数不能使用比较判别法/等价判别法?

    绝对收敛 可以认为是级数某种 本质上 是收敛的 即其正项和负项的和分别是收敛的 而条件收敛 往往是正项负项的和不收敛 因为在级数中的排列导致互相抵消 所以 看起来 收敛了 数列收敛 也就是数列的前N项和的极限存在 对于正项数列 在前N项改变
  • 标签的正确使用

    原文 http book csdn net bookfiles 502 10050217296 shtml 7 7 图片 标签 7 7 1